Sửa giúp em CODE copy của file .xla

Liên hệ QC

Duong_VBA

Thành viên chính thức
Tham gia
10/11/07
Bài viết
89
Được thích
26
Em có file xla(VD.xla), có 2 Sheel là Menu và Data, khi chạy mã copy dữ liệu từ Sheet Menu dán vào Sheet của file đang mở thì OK nhưng khi đóng Excel thì nó luôn hỏi có ghi lại file VD.xla (Chứng tỏ Sheet Menu đã có thay đổi, nhưng em nghĩ code này không làm thay đổi file VD.xla) các bác sửa giúp để đóng Excel không hỏi ghi lại file xla nữa.

PHP:
Sub COPY()
    Dim MenuSheet As Worksheet
     Application.ScreenUpdating = False
    ThisWorkbook.IsAddin = False
    Set MenuSheet = ThisWorkbook.Sheets("Menu")
   Range("y139").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
   Selection.Copy
   ThisWorkbook.IsAddin = True
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
           SkipBlanks:=False, Transpose:=False
   Application.CutCopyMode = False
   
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Vậy em sữa lại như vầy thì sao nhỉ?
Mã:
[COLOR=#0000ff]Sub COPY()[/COLOR]
[COLOR=#0000ff]Dim MenuSheet As Worksheet[/COLOR]
[COLOR=#0000ff]Application.ScreenUpdating = False[/COLOR]
[COLOR=#0000ff]ThisWorkbook.IsAddin = False[/COLOR]
[COLOR=#0000ff]Set MenuSheet = ThisWorkbook.Sheets("Menu")[/COLOR]
[COLOR=#0000ff][COLOR=red]Range(Range([y139], [y139].End(xlDown)), _
        Range([y139], [y139].End(xlToRight))).Copy[/COLOR]
ThisWorkbook.IsAddin = True
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
 
End Sub[/COLOR]
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Bạn sử dụng code sau trong Thisworkbook
PHP:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Close SaveChanges:=False
End Sub
 
Upvote 0
Không ổn bạc ạ! Vẫn hỏi khi thoát khỏi Excel
 
Upvote 0
Bạn gửi file lên để các bạn chỉnh trực tiếp trên file có phải nhanh hơn không.
 
Upvote 0
Kiểu của bác hoangdanh282vn, chạy báo lỗi thêm dòng On Error GoTo loi thì chạy nhưng vẫn hỏi khi thoát.
 
Upvote 0
Cũng dùng sự kiện BeforeClose của file .xla,

nếu muốn lưu mà không hỏi thì dùng câu lệnh này:

PHP:
ThisWorkbook.Save

Nếu muốn không lưu mà không hỏi han gì thì dùng lệnh này:

PHP:
ThisWorkbook.Saved = True

Xem thêm Tuyệt chiêu số 4.

Gởi Hoàng Danh: Activeworkbook là workbook nào trong số nhiều workbooks đang mở?, và code đặt ở file nào?
 
Upvote 0
Gởi Hoàng Danh: Activeworkbook là workbook nào trong số nhiều workbooks đang mở?, và code đặt ở file nào?

Nhìn vào code trong bài #1, em đoán là trong file VD.xla chứa dữ liệu và code sẽ chứa trong file này. Khi chạy code sẽ copy dữ liệu trong file này và dán vào file nào đó. Nhưng chỉ là phỏng đoán. Vì thế bài #5 em mới nói bạn ấy gửi kèm file để xác định lỗi cho chính xác hơn. Code chỉ mang tính tham khảo thôi ạ.
 
Upvote 0
Nhìn vào code trong bài #1, em đoán là trong file VD.xla chứa dữ liệu và code sẽ chứa trong file này. Khi chạy code sẽ copy dữ liệu trong file này và dán vào file nào đó. Nhưng chỉ là phỏng đoán.
Danh đoán đúng rồi, nhưng có 2 vấn đề:
- Danh không nói rõ chép code vào đâu, sợ bạn ấy chép nhầm vào work book khác
- Activeworkbook không hẳn là workbook .xla chứa code, nếu chạy Sub trên từ cửa sổ VBA, hoặc là khi file .xla đã cài đặt thành add-in
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi muốn hỏi các ngài xem có ai biết cách chống xóa các sheet trong File thì chỉ cho tôi với
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Tôi muốn hỏi các ngài xem có ai biết cách chống xóa các sheet trong File thì chỉ cho tôi với

bạn cần viết 1 bài mới nếu không bài của bạn sẽ bị admin xóa và cũng không có ai giúp bạn được đâu, vì bài của bạn chen ngang vào bài của người khác.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom