Lê Hồng Trường
Lê Hồng Trường
Thảo luận 1 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 297 lượt xem

Mình để code như vậySub Tao_wb() Dim wb As Workbook Set wb = Workbooksd Dim

Hi Thầy,

Mình để code như vậy

Sub Tao_wb()

    Dim wb As Workbook

    Set wb = Workbooks.Add

    Dim mypath As String

    mypath = Application.FileDialog(msoFileDialogSaveAs).Show

    wb.SaveAs mypath

End Sub

Khi excel show màn hình Save as. mình set-up tên là "ABC" nhưng file được save có tên là -1 như vậy là sao vậy?


Xin cảm ơn.


Thảo luận 1 câu trả lời
Lượt xem 297 lượt xem
Vỗ tay vỗ tay
Lê Hồng Trường 09:01 - Jan 04, 2021

Nguyên nhân là đoạn code:

mypath = Application.FileDialog(msoFileDialogSaveAs).Show

Khi bạn mở cửa sổ FileDialogSaveAs và bấm vào nút OK thì được hiểu là 

Application.FileDialog(msoFileDialogSaveAs).Show = - 1

Do đó câu lệnh 
 wb.SaveAs mypath sẽ nhận giá trị là -1.

Chú ý: Bản thân câu lệnh đã mang ý nghĩa SaveAs rồi. Bạn không cần đặt lệnh wb.SaveAs mypath nữa.

Bạn tham khảo đoạn code lưu file dưới đây:

Sub filesave()
    Dim bFileSaveAs As Boolean
    bFileSaveAs = Application.Dialogs(xlDialogSaveAs).Show
    If Not bFileSaveAs Then MsgBox "User cancelled", vbCritical
End Sub

Chú ý: trong đoạn lệnh If Not ... mang ý nghĩa kiểm tra việc bạn bấm Lưu (OK) hay không. Nếu không thì sẽ hiện msgbox "User Cancelled" để thông báo việc bạn mở cửa sổ SaveAs nhưng lại hủy bỏ việc đó đi.

Vỗ tay vỗ tay
Câu hỏi liên quan
@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội