Tắt hộp thoại cảnh báo VBA

Liên hệ QC

USB1394

Thành viên hoạt động
Tham gia
20/12/08
Bài viết
173
Được thích
12
Nghề nghiệp
Lính triều đình
[FONT=&quot]Xin chào các bạn , mình đang dung excel 2007 và gặp phải vấn đề sau khi chạy thủ tục
[/FONT]
PHP:
  Sub SaveBook()
  Sheet1.Activate
      ActiveSheet.Copy
      ActiveWorkbook.SaveAs Filename:="D:\ty.xls"
      ActiveWindow.Close
  End Sub

Nếu trên Sheet1 không có code thì thủ tục chạy bình thường , nhưng khi trên sheet1 có code (ví dụ ở đây mình dung sự kiện : Worksheet_SelectionChange) thì khi chạy thủ tục trên sẽ xuất hiện thông báo (hình 1)
Untitled.jpg

Pic
Nếu chọn YES thì thủ tục chạy , chọn NO thì chương trình báo lỗi (hình 2)
Untitled1.jpg


[FONT=&quot]Vấn đề : làm cách nào để chạy thủ tục trên mà không gặp phải hộp thoại hình 1 không ? (tức là chạy thủ tục bình thường - bỏ qua việc sheet1 có code hay không) +-+-+-++-+-+-++-+-+-+
[/FONT]
 

File đính kèm

  • Book1.xls
    32 KB · Đọc: 27
[FONT=&quot]Xin chào các bạn , mình đang dung excel 2007 và gặp phải vấn đề sau khi chạy thủ tục
[/FONT]
PHP:
  Sub SaveBook()
  Sheet1.Activate
      ActiveSheet.Copy
      ActiveWorkbook.SaveAs Filename:="D:\ty.xls"
      ActiveWindow.Close
  End Sub

Nếu trên Sheet1 không có code thì thủ tục chạy bình thường , nhưng khi trên sheet1 có code (ví dụ ở đây mình dung sự kiện : Worksheet_SelectionChange) thì khi chạy thủ tục trên sẽ xuất hiện thông báo (hình 1)
View attachment 57963

Pic
Nếu chọn YES thì thủ tục chạy , chọn NO thì chương trình báo lỗi (hình 2)
View attachment 57964


[FONT=&quot]Vấn đề : làm cách nào để chạy thủ tục trên mà không gặp phải hộp thoại hình 1 không ? (tức là chạy thủ tục bình thường - bỏ qua việc sheet1 có code hay không) +-+-+-++-+-+-++-+-+-+
[/FONT]
Sửa thành vầy xem:
PHP:
Sub SaveBook()
  Sheet1.Copy
  With ActiveWorkbook
    .SaveAs "D:\ty.xls", xlExcel8
    .Close
  End With
End Sub
Cái gì làm bằng code không được nhưng làm bằng tay được thì bạn hãy nghĩ đến chức năng record macro nhé (xem nó viết code thế nào mà không lỗi)
 
Upvote 0
em đã làm theo cách anh ndu96081631 chỉ thì đã khắc phục được , cám ơn anh rất nhiều . Nhưng đôi khi nó lại hiện hộp thoại Hình 3 thì mình phải làm gì để cho nó không hiện ra nữa đây anh +-+-+-++-+-+-++-+-+-+
 

File đính kèm

  • H3.jpg
    H3.jpg
    79 KB · Đọc: 233
Upvote 0
em đã làm theo cách anh ndu96081631 chỉ thì đã khắc phục được , cám ơn anh rất nhiều . Nhưng đôi khi nó lại hiện hộp thoại Hình 3 thì mình phải làm gì để cho nó không hiện ra nữa đây anh +-+-+-++-+-+-++-+-+-+

Cách của anh ndu96081631 chỉ nên dùng nếu bạn muốn lưu về Excel 2003. Nếu file của bạn đang là Excel 2007 mà muốn lưu theo đúng định dạng của nó thì không được chỉ định xlExcel8.

Để thực hiện vấn đề của bạn hãy tham khảo thủ tục dưới đây:

Mã:
Sub LuuFileKhongHoi()
    Application.DisplayAlerts = False
    ActiveWorkbook.CheckCompatibility = False[COLOR="seagreen"] 'Chi thuc hien trong Office 2007 tro len[/COLOR]
    ActiveWorkbook.SaveAs "TeFileCuaBan"
    Application.DisplayAlerts = True

End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
em đã làm theo cách anh ndu96081631 chỉ thì đã khắc phục được , cám ơn anh rất nhiều . Nhưng đôi khi nó lại hiện hộp thoại Hình 3 thì mình phải làm gì để cho nó không hiện ra nữa đây anh +-+-+-++-+-+-++-+-+-+
Thêm thằng Application.DisplayAlerts = False vào thử xem:
PHP:
Sub SaveBook()
  Application.DisplayAlerts = False
  Sheet1.Copy
  With ActiveWorkbook
    .SaveAs "D:\ty.xls", xlExcel8
    .Close
  End With
  Application.DisplayAlerts = True
End Sub
 
Upvote 0
Bạn phải Save as với Type Enable Macro Workbook thì mới cho save lại, không thôi với XL2007 nó sẽ không cho Save với File có chứa VBA.


PHP:
Sub LuuFile()
    With Workbooks(ThisWorkbook.Name)
        Application.DisplayAlerts = False
        .SaveAs Filename:="D:\ABCD.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
        Application.DisplayAlerts = True
        If Workbooks.Count = 1 Then Application.Quit Else .Close
    End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Mình đã giải quyết vấn đề :
1. Nếu lưu file excel 2007 dùng
Mã:
[COLOR=#000000][COLOR=#007700].[/COLOR][COLOR=#0000bb]SaveAs [/COLOR][COLOR=#007700][/COLOR][COLOR=#dd0000]"D:\ABCD.xlsm"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]FileFormat[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#0000bb]xlOpenXMLWorkbookMacroEnabled[/COLOR][/COLOR]
2. Nếu lưu file excel 2003 dùng
Mã:
[COLOR=#000000][COLOR=#007700].[/COLOR][COLOR=#0000bb]SaveAs [/COLOR][COLOR=#dd0000]"D:\ty.xls"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]xlExcel8[/COLOR][/COLOR]
3. Nếu tắt hộp thoại cảnh báo dùng
Mã:
ActiveWorkbook.CheckCompatibility = False
Xin chân thành cám ơn các anh : ndu96081631 , Nguyễn Duy Tuân , minhthien321 đã giúp đỡ +-+-+-++-+-+-++-+-+-+
 
Upvote 0
Các bạn cho mình xin hỏi : khi mở file đã cài pass thì sẽ hiện hộp thoại Password và mình chọn : Read-only .Vậy có cách nào tuỳ chọn ko hiện hộp thoại mà chương trình vẫn biết mình chọn chế độ Read-only +-+-+-++-+-+-++-+-+-+
h4.jpg
 
Upvote 0
Các bạn cho mình xin hỏi : khi mở file đã cài pass thì sẽ hiện hộp thoại Password và mình chọn : Read-only .Vậy có cách nào tuỳ chọn ko hiện hộp thoại mà chương trình vẫn biết mình chọn chế độ Read-only +-+-+-++-+-+-++-+-+-+
View attachment 58092
sau nhiều năm nghiên cứu cũng tìm ra ;;;;;;;;;;;
Mã:
Workbooks.Open Filename:=fullname, [COLOR=#ff0000]ReadOnly:=True[/COLOR]
 
Upvote 0
Web KT
Back
Top Bottom