Code gọi workbook trong ổ D

Liên hệ QC

nmhung49

Thành viên tích cực
Tham gia
20/8/09
Bài viết
1,186
Được thích
1,337
Em có một workbook tên là "check" trong đó có sheet 1 tên là report em tạo 1 nút commandbutton. Có 5 bước
1/ Là click vào nút đó nó sẽ gọi workbook trong ổ D có tên sale mình viết code ntn?
2/ Em chọn các cột trong workbook "sale" trong đó có sheet1 em sẽ chọn cột B, K, T, U,V copy code ntn?
3/Copy xong em trở lại workbook có tên "check" trong sheet report em paste nếu paste bình thường code? Và paste value code?
4/ Sau đó trong sheet report em chỉ chọn cột A sort thứ 1 theo Ascending code?, thứ 2 sort theo Descending code?
5/ Em đóng workbook sale mà em gọi ở bước 1 code?. Rất mong được sự giúp đỡ của các bạn anh chị trên diễn dàn
 
Em có một workbook tên là "check" trong đó có sheet 1 tên là report em tạo 1 nút commandbutton. Có 5 bước
1/ Là click vào nút đó nó sẽ gọi workbook trong ổ D có tên sale mình viết code ntn?
2/ Em chọn các cột trong workbook "sale" trong đó có sheet1 em sẽ chọn cột B, K, T, U,V copy code ntn?
3/Copy xong em trở lại workbook có tên "check" trong sheet report em paste nếu paste bình thường code? Và paste value code?
4/ Sau đó trong sheet report em chỉ chọn cột A sort thứ 1 theo Ascending code?, thứ 2 sort theo Descending code?
5/ Em đóng workbook sale mà em gọi ở bước 1 code?. Rất mong được sự giúp đỡ của các bạn anh chị trên diễn dàn
Tất cả các việc này bạn có thể sử dụng chức năng Macro Recoding để tìm hiểu. Tự làm bạn sẽ nhớ lâu hơn và sẽ biết nhiều hơn những gì bạn đang cần.
 
Upvote 0
Gửi anh Huu Thang

Em có sử dụng recording macro như mà nó dài lắm em không biết rút gọn thế nào, em đang cố gắng học VBA mong anh chỉ cách rút gọn giúp, vì e thấy anh NDu record macro rồi viết rút gọn lại hay quá
 
Upvote 0
Em có sử dụng recording macro như mà nó dài lắm em không biết rút gọn thế nào, em đang cố gắng học VBA mong anh chỉ cách rút gọn giúp, vì e thấy anh NDu record macro rồi viết rút gọn lại hay quá
Khi dùng Macro Recording, nếu thấy code dài và rối thì bạn chỉ nên làm từng bước thôi. Chuẩn bị tất cả sẵn sàng rồi mới bắt đầu Record. Thực hiện xong thao tác thì kết thúc Record ngay. Đừng nên làm nhiều thao tác cũng lúc, code dài sẽ làm bạn rối và khó phân biệt được đoạn code nào là của thao tác nào.
Ví dụ như Recode thao tác mở một file:
- Bật chức năng Macro Recording
- File | Open | Chọn file cần mở | ok
- Tắt chức năng Macro Recoding

Đây là kết quả tôi thu được:
PHP:
Sub Macro1()
'
' Macro1 Macro
'

'
    Workbooks.Open Filename:="D:\GPE.xls"
End Sub
 
Upvote 0
rút gắn đoạn code

Mã:
ChDir "D:\"
    Workbooks.Open Filename:="D:\sale.xls"
    Range("B:B,K:K").Copy
    Windows("checkxls").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Windows("sale.xls").Activate
    ActiveWindow.Close
    Columns("A:A").Copy
    Range("C1").Select
    ActiveSheet.Paste
    Range("D4").Select
Em ghi được 1 đoạn code như thế. Em nhờ các anh chị và các bạn có thể rút ngắn được không code nào có thể cùng nằm chung 1 hàng thì cho nó nằm chung còn không thì thôi. Thanks
 
Upvote 0
Mã:
ChDir "D:\"
    Workbooks.Open Filename:="D:\sale.xls"
    Range("B:B,K:K").Copy
    Windows("checkxls").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Windows("sale.xls").Activate
    ActiveWindow.Close
    Columns("A:A").Copy
    Range("C1").Select
    ActiveSheet.Paste
    Range("D4").Select
Em ghi được 1 đoạn code như thế. Em nhờ các anh chị và các bạn có thể rút ngắn được không code nào có thể cùng nằm chung 1 hàng thì cho nó nằm chung còn không thì thôi. Thanks
Có thể rút gọn lại như thế này:
PHP:
Sub Text()
    Workbooks.Open Filename:="D:\sale.xls"
    Range("B:B,K:K").Copy Windows("checkxls").ActiveSheet.Range("A1")
    Windows("sale.xls").Close
    Windows("checkxls").Activate
    Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess
    Columns("A:A").Copy Range("C1")
End Sub
 
Upvote 0
anh coi lại đoạn này giúp

Anh Hữu Thắng hình như đoạn code này anh kết hợp lại không ổn cho lắm
Mã:
Columns("A:A").Copy Range("C1")
Vì khi em để con chuột ô khác là bị báo lỗi anh coi lại dùm. Thanks
 
Upvote 0
Anh Hữu Thắng hình như đoạn code này anh kết hợp lại không ổn cho lắm
Mã:
Columns("A:A").Copy Range("C1")
Vì khi em để con chuột ô khác là bị báo lỗi anh coi lại dùm. Thanks
Chẳng có lỗi gì trong dòng code đó cả. Nếu có lỗi thì bạn gửi cả 2 file lên tôi sẽ kiểm tra giúp. Còn code tôi nghĩ không vấn đề gì.
 
Upvote 0
anh coi lai giúp

em gửi file kem anh coi giúp em thấy khi em để con chuột tại ô C1 thì không báo lỗi như mà để chỗ khác lại báo lỗi
 
Upvote 0
em gửi file kem anh coi giúp em thấy khi em để con chuột tại ô C1 thì không báo lỗi như mà để chỗ khác lại báo lỗi
Lỗi không phải ở chỗ copy mà ở chỗ Sort. Sửa lại như thế này:
PHP:
Sub AutoShape1_Click()
    Workbooks.Open Filename:="D:\sale.xls"
    Range("B:B,K:K").Copy Windows("check.xls").ActiveSheet.Range("A1")
    Windows("sale.xls").Close
    Windows("check.xls").Activate
    [A:B].Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess
    Columns("A:A").Copy Range("C1")
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom