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.
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.