Nhờ các Anh / Chị giúp em đoạn code tự động chọn sheet

Liên hệ QC

Gà gà

Thành viên mới
Tham gia
28/12/20
Bài viết
25
Được thích
2
Xin chào các Anh / Chị
Em có một file excel tên là 2207.xlsx
File 2207 chứa gần khoãng 30 sheet, tên của mỗi sheet ứng với ngày làm việc
Ví dụ : sheet1( 01) , sheet2(03) , sheet3(04) ........sheet15(18) , sheet16(19)......

Em có 1 file khác , ví dụ tên là Kiem tra .xlsm
Ở file này , em muốn active sheet có tên là 04 của file 2207.xlsx để lấy giá trị thì mình code như thế nào ạ
Do em mới học VBA , còn gà lắm nên xin nhờ Anh / Chị giúp đỡ em với ạ
Em xin cảm ơn nhiều nhiều ạ
 
Lần chỉnh sửa cuối:
Xin chào các Anh / Chị
Em có một file excel tên là 2207.xlsx
File 2207 chứa gần khoãng 30 sheet, tên của mỗi sheet ứng với ngày làm việc
Ví dụ : sheet1( 01) , sheet2(03) , sheet3(04) ........sheet15(18) , sheet16(19)......

Em có 1 file khác , ví dụ tên là Kiem tra .xlsm
Ở file này , em muốn active sheet có tên là 04 của file 2207.xlsx để lấy giá trị thì mình code như thế nào ạ
Anh Chị xin vui lòng giúp em với ạ.
Em xin cảm ơn nhiều nhiều ạ
File 2207.xlsx mở hay đóng mà cần gì phải chọn đến sheets đó rồi mới code là sao nhỉ.Chắc mới học VBA à bạn.
 
Upvote 0
File 2207.xlsx mở hay đóng mà cần gì phải chọn đến sheets đó rồi mới code là sao nhỉ.Chắc mới học VBA à bạn.
Dạ, file đó đang đóng, nhưng mà em đã code để mở file đó lên rồi, sheet đang active là có tên là 19
Em không biết code thế nào để em active sheet có tên là 04 , ví dụ là vậy, để em có thể ứng dụng chọn sheet có tên là 07 , 08 chẳng hạn
Do em không biết code thế nào để auto chọn như vậy nên em mới hỏi để xin các anh chị giúp đỡ cho em đoạn code để auto chọn ạ
 
Upvote 0
Định nghĩa thế nào là "tự động chọn sheet"? Chọn thì dễ rồi, nhưng tự động là sao?

Nhà bạn có cửa tự động đóng mở. Nhưng ít nhất phải có cái gì khởi nó chứ: chó mèo chạy ngang, khách bấm chuông,... Chả nhẽ nó cư tự một mình đóng mở cả ngày?
 
Upvote 0
Định nghĩa thế nào là "tự động chọn sheet"? Chọn thì dễ rồi, nhưng tự động là sao?

Nhà bạn có cửa tự động đóng mở. Nhưng ít nhất phải có cái gì khởi nó chứ: chó mèo chạy ngang, khách bấm chuông,... Chả nhẽ nó cư tự một mình đóng mở cả ngày?
Làm sao mà bạn ví dụ tự động mở cửa với thao tác excel này được, đúng hài
Mà người làm cửa tự động đâu có ngu mà để chó mèo chạy qua là cửa mở hả bạn ???
 
Upvote 0
Nếu 2 workbook đang mở thì bạn active vầy:

Workbooks("2207.xlm").worksheets("04").Activate

Còn không cần activate thì:

With Workbooks("2207.xlm").worksheets("04")
.....
End With
 
Upvote 0
Nếu 2 workbook đang mở thì bạn active vầy:

Workbooks("2207.xlm").worksheets("04").Activate

Còn không cần activate thì:

With Workbooks("2207.xlm").worksheets("04")
.....
End With
Dạ em cảm ơn Bác nhiều nhiều ạ
Bài đã được tự động gộp:

Nếu 2 workbook đang mở thì bạn active vầy:

Workbooks("2207.xlm").worksheets("04").Activate

Còn không cần activate thì:

With Workbooks("2207.xlm").worksheets("04")
.....
End With
Dạ Bác ơi cho em hỏi xíu
worksheets("04").Activate
"04" này mình có thể gán cho giá trị cell nào được không Bác
ví dụ em chọn cell A2 là 04
em thay đổi giá trị của cell A2 là 08 thì sheet 08 được active
có cách nào làm được như vậy không Bác?
 
Lần chỉnh sửa cuối:
Upvote 0
Mà người làm cửa tự động đâu có ngu mà để chó mèo chạy qua là cửa mở hả bạn ???
Nhầm... cửa Ministop, circle K... đưa cái bánh xe vô nó cũng mở, thằng nào ác, dựng cái xe sát cái cảm biến, nó cứ mở ra vô suốt... :D
 
Upvote 0
Nhầm... cửa Ministop, circle K... đưa cái bánh xe vô nó cũng mở, thằng nào ác, dựng cái xe sát cái cảm biến, nó cứ mở ra vô suốt... :D
mở file lên và code chọn cái sheet nào đó thì em làm được
nhưng mà em muốn chọn sheet khác mà không phải vô sửa code lại
ví dụ em chọn cell A2 là 04
em thay đổi giá trị của cell A2 là 08 thì sheet 08 sẽ được active
em không biết là làm như vậy có được không
nhờ Bác giúp đỡ em với ạ
 
Upvote 0
Nếu ô A2 có giá trị là tên sheet

Worksheets(range("A2").value).Activate
em cảm ơn Bác
Hôm trước em có viết đoạn code vầy mà nó không chạy
em set A2 là 18
Sub text()
Windows("2207.xlsx").Activate
ts = Range("A2").Value
Worksheets(ts).Activate

End Sub

em msgbox(ts) thì nó vẫn ra giá trị 18 luôn
em mới làm theo đoạn code của bác nhưng mà vẫn k chạy luôn
em mới nghĩ, hay là 18 là giá trị số , nó không hiểu
tên sheet là giá trị text mà
em thay đổi nó thành giá trị text
code của em chạy ok.
em lại rút ra được một kinh nghiệm nho nhỏ
em cảm ơn Bác rất nhiều vì đã nhiệt tình giúp em
xin chân thành cảm ơn Bác
 
Upvote 0
em cảm ơn Bác
Hôm trước em có viết đoạn code vầy mà nó không chạy
em set A2 là 18
Sub text()
Windows("2207.xlsx").Activate
ts = Range("A2").Value
Worksheets(ts).Activate

End Sub

em msgbox(ts) thì nó vẫn ra giá trị 18 luôn
em mới làm theo đoạn code của bác nhưng mà vẫn k chạy luôn
em mới nghĩ, hay là 18 là giá trị số , nó không hiểu
tên sheet là giá trị text mà
em thay đổi nó thành giá trị text
code của em chạy ok.
em lại rút ra được một kinh nghiệm nho nhỏ
em cảm ơn Bác rất nhiều vì đã nhiệt tình giúp em
xin chân thành cảm ơn Bác
Khi viết code nếu không cần thiết thì hạn chế Active vì có thể làm cho tốc độ xử lý sẽ chậm đi. Nếu chỉ lấy dữ liệu thôi thì tham chiếu thẳng đến ô và lấy giá trị rồi xử lý, do bạn không có file nên chỉ góp ý như thế.
 
Upvote 0
Làm sao mà bạn ví dụ tự động mở cửa với thao tác excel này được, đúng hài
Mà người làm cửa tự động đâu có ngu mà để chó mèo chạy qua là cửa mở hả bạn ???
Lý luận khôn/ngu thì sẵn sàng lắm.
Tư duy lập trình được chịu khó chú tâm như vậy thì tốt biết mấy.
 
Upvote 0
Khi viết code nếu không cần thiết thì hạn chế Active vì có thể làm cho tốc độ xử lý sẽ chậm đi. Nếu chỉ lấy dữ liệu thôi thì tham chiếu thẳng đến ô và lấy giá trị rồi xử lý, do bạn không có file nên chỉ góp ý như thế.
Cảm ơn Bác
Em sẽ lưu ý việc này ạ
 
Upvote 0
Windows("2207.xlsx").Activate
ts = Range("A2").Value
Worksheets(ts).Activate
Khi nào dùng lệnh copy thì mới cần activate sheet nguồn nhé bạn. Còn chỉ lấy giá trị thì đứng ở sheet khác vẫn lấy được.
Khi viết code lưu ý tất cả các thao tác trên sheet như: sheet activate, copy ô, dán giá trị vào ô,... đều làm code chạy chậm.
Muốn tính toán trên vùng nào đó, bạn nên copy giá trị vô một mảng, VD:
rng = Sheet1.range("A2:Z100").value
Rồi dùng vòng lặp thao tác trên mảng rng này, không nên loop từng cell trên sheet.
 
Upvote 0
Web KT

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

Back
Top Bottom