Rút gọn code VBA (copy insert range)

Liên hệ QC

thnghiachau

Chỉ biết ngồi BÈ và PHÁN chuyện!!!
Tham gia
14/9/09
Bài viết
844
Được thích
707
Giới tính
Nam
Nghề nghiệp
Search
Chào cả nhà GPE,
Mình có đoãn code VBA như sau:
Mã:
    Set wb = Workbooks.Open("D:\FileFrom.xlsx", True, True)
    
    Windows("FileFrom.xlsx").Activate
    Sheets("From").Range("A1:C10").Select
    Selection.Copy
    
    Windows("FileTo.xlsx").Activate
    Sheets("To").Range("E10").Select
    Selection.Insert Shift:=xlDown

    wb.Close

Xin cho hỏi: mình có thể rút gọn cái code này được nữa không vậy? Vì cái này là copy insert nên mình không biết sao nữa ah...
Xin cám ơn
 
Rút gọn chi vậy?
Nếu là tôi thì còn viết dài hơn. Bởi vì tôi không thích "magic numbers" cho nên những cái đó tôi cho vào khai báo hằng (Const). Code trên có tất cả 7 hằng.
 
Upvote 0
Chào cả nhà GPE,
Mình có đoãn code VBA như sau:
Mã:
    Set wb = Workbooks.Open("D:\FileFrom.xlsx", True, True)
   
    Windows("FileFrom.xlsx").Activate
    Sheets("From").Range("A1:C10").Select
    Selection.Copy
   
    Windows("FileTo.xlsx").Activate
    Sheets("To").Range("E10").Select
    Selection.Insert Shift:=xlDown

    wb.Close

Xin cho hỏi: mình có thể rút gọn cái code này được nữa không vậy? Vì cái này là copy insert nên mình không biết sao nữa ah...
Xin cám ơn
Mã:
    Set Wb = Workbooks.Open("D:\FileFrom.xlsx", True, True)
    Wb.Sheets("From").Range("A1:C10").Copy
    Workbooks("FileTo.xlsx").Sheets("To").Range("E10").Insert Shift:=xlDown
    Wb.Close
 
Upvote 0
Rút gọn chi vậy?
Nếu là tôi thì còn viết dài hơn. Bởi vì tôi không thích "magic numbers" cho nên những cái đó tôi cho vào khai báo hằng (Const). Code trên có tất cả 7 hằng.
Dạ, vì mình thấy có cái này "Windows("FileFrom.xlsx").Activate" và "Windows("FileTo.xlsx").Activate" khi chạy thì thời gian chạy có vẻ lâu hơn thì phải.
Bài đã được tự động gộp:

Mã:
    Set Wb = Workbooks.Open("D:\FileFrom.xlsx", True, True)
    Wb.Sheets("From").Range("A1:C10").Copy
    Workbooks("FileTo.xlsx").Sheets("To").Range("E10").Insert Shift:=xlDown
    Wb.Close
Cám ơn anh,
Code làm cho máy em chạy nhanh hẳn khi data nhiều đó anh.
 
Upvote 0
Dạ, vì mình thấy có cái này "Windows("FileFrom.xlsx").Activate" và "Windows("FileTo.xlsx").Activate" khi chạy thì thời gian chạy có vẻ lâu hơn thì phải.
...
Tôi thì cho tốc đọ là điều nhỏ. Tôi chuộng code mà mình dễ kiểm soát, code có thể cho bạn thấy kết quả trước khi nó đóng (nếu là tôi thì tôi thêm code hỏi xem đúng chưa).
Chứ nó mở file ra, copy xong rồi đóng lại thì làm cách nào bạn biết nó thực hiện vừa ý chưa?
 
Upvote 0
Tôi thì chuọng code có thể cho bạn thấy kết quả trước khi nó đóng (nếu là tôi thì tôi thêm code hỏi xem đúng chưa).
Chứ nó mở file ra, copy xong rồi đóng lại thì làm cách nào bạn biết nó thực hiện vừa ý chưa?
Dạ, Anh nói rất đúng. Em cũng thường viết code "từng bước" vì mình không dc giỏi lắm nên như thế cho dễ dàng kiểm tra và theo dõi thực thi hơn.
Nhưng vì dữ liệu em lớn quá nên em mới tìm hiểu thêm ah
Cám ơn anh rốt nhiều.
 
Upvote 0
Web KT

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

Back
Top Bottom