Vba excel duyệt qua các sheet

  • #1

Mình có một bảng tính gồm rất nhiều sheets. Mình viết lệnh để xử lý các sheet được chọn nhưng không biết cách làm thế nào để VBA biết mình đang chọn bao nhiêu sheet? Và đó là những sheet nào? Xin mọi người chỉ giúp.

Cám ơn nhiều!

  • #2

Mình có một bảng tính gồm rất nhiều sheets. Mình viết lệnh để xử lý các sheet được chọn nhưng không biết cách làm thế nào để VBA biết mình đang chọn bao nhiêu sheet? Và đó là những sheet nào? Xin mọi người chỉ giúp.

Cám ơn nhiều!

Tạo 1 DS tên các sheet cần duyệt trên 1 cột hay 1 dòng nào đó, trong 1 sheet nào đó. Muốn thêm bớt thì cứ vào đây mà thêm bớt.
Cho code duyệt qua từng sheet có tên trong vùng này rồi muốn "mần gì đó với nó thì mần".

  • #3

Tạo 1 DS tên các sheet cần duyệt trên 1 cột hay 1 dòng nào đó, trong 1 sheet nào đó. Muốn thêm bớt thì cứ vào đây mà thêm bớt.
Cho code duyệt qua từng sheet có tên trong vùng này rồi muốn "mần gì đó với nó thì mần".

Còn cách nào hay hơn không bạn nhỉ? Chứ cách này mình thấy hơn thủ công và phức tạp cho người dùng quá. Mình muốn viết bảng tính và public cho nhiều người cùng sử dụng. Ý mình là duyệt quá các sheet trong Group kìa (tức là khi chúng ta chọn các Tab (sheet)).

Lần chỉnh sửa cuối: 27/9/14

  • #4

Còn cách nào hay hơn không bạn nhỉ? Chứ cách này mình thấy hơn thủ công và phức tạp cho người dùng quá. Mình muốn viết bảng tính và public cho nhiều người cùng sử dụng. Ý mình là duyệt quá các sheet trong Group kìa (tức là khi chúng ta chọn các Tab (sheet)).

Muốn chọn sheet nào là do ý muốn của con người, khi chọn thì phải "thủ công" rồi.

Ý mình là duyệt quá các sheet trong Group kìa (tức là khi chúng ta chọn các Tab (sheet)).

Cái đó không phải "thủ công" sao?
Nếu biết được quy luật chọn thì có thể khác.
Ví dụ: duyệt qua tất cả các sheet có tên bắt đầu bằng chữ "GPE" chẳng hạn.

Còn cách nào hay hơn không bạn nhỉ?

Chắc là còn đó. Chờ các bạn khác xem sao.

  • #5

Muốn chọn sheet nào là do ý muốn của con người, khi chọn thì phải "thủ công" rồi.

Cái đó không phải "thủ công" sao?
Nếu biết được quy luật chọn thì có thể khác.
Ví dụ: duyệt qua tất cả các sheet có tên bắt đầu bằng chữ "GPE" chẳng hạn.

Chắc là còn đó. Chờ các bạn khác xem sao.

Biết là cách nào cũng là thủ công cả. Nhưng bắt người dùng và 1 sheet mình quy định rồi gõ tên từng sheet sẽ thực hiện lệnh với việc chọn các sheet bằng cách kích chuột vào từng Tab (sheet) sau đó thực hiện luôn thì hay hơn chứ bạn?

Vba excel duyệt qua các sheet

  • #6

Biết là cách nào cũng là thủ công cả. Nhưng bắt người dùng và 1 sheet mình quy định rồi gõ tên từng sheet sẽ thực hiện lệnh với việc chọn các sheet bằng cách kích chuột vào từng Tab (sheet) sau đó thực hiện luôn thì hay hơn chứ bạn?

Hiểu qua được ý của bạn là bạn giữ phím Ctrl rồi chọn các sheet cần sử lý nhưng mình không giỏi lập trình
mình chỉ biết mỗi ActiveSheet
nhưng ActiveSheet thì chỉ cho 1 sheet thì phải

Vba excel duyệt qua các sheet

  • #7

Biết là cách nào cũng là thủ công cả. Nhưng bắt người dùng và 1 sheet mình quy định rồi gõ tên từng sheet sẽ thực hiện lệnh với việc chọn các sheet bằng cách kích chuột vào từng Tab (sheet) sau đó thực hiện luôn thì hay hơn chứ bạn?

Mục đích của bạn khó hiểu quá, làm người muốn giúp không biết phải làm thế nào.

  • #8

Hiểu qua được ý của bạn là bạn giữ phím Ctrl rồi chọn các sheet cần sử lý nhưng mình không giỏi lập trình
mình chỉ biết mỗi ActiveSheet
nhưng ActiveSheet thì chỉ cho 1 sheet thì phải

Việc chọn nhiều sheet thì mình biết và việc này mình không thực hiện. Mình đang muốn code VBA nhận biết là người dùng đã chọn bao nhiêu sheets và đó là những sheet nào để mình có hướng xử lý tương ứng.

Vba excel duyệt qua các sheet

  • #9

Chắc bạn nên thế này:

Mình có một bảng tính gồm rất nhiều sheets.

Nên liệt kê hết các tên trang tính trong file của bạn ra đây.

Mình viết lệnh để xử lý các sheet được chọn

Hãy liệt kê các trang tính được chọn ra đây; Chúng có chung cái gì không?
Nếu không có thì ta fải ép kiểu cho nó có, như bạn BaTe gợi í về cách gán tên cho các trang cùng dòng họ.

nhưng không biết cách làm thế nào để VBA biết mình đang chọn bao nhiêu sheet? Và đó là những sheet nào? Xin mọi người chỉ giúp.

Cái này ta lần lượt lước qua hết các trang tính & đếm thôi.

Chờ sự cụ thể từ bạn, để mai ra còn các cách ứng xử fù hợp.

Vba excel duyệt qua các sheet

  • #10

Việc chọn nhiều sheet thì mình biết và việc này mình không thực hiện. Mình đang muốn code VBA nhận biết là người dùng đã chọn bao nhiêu sheets và đó là những sheet nào để mình có hướng xử lý tương ứng.

Excel ở chế độ Share khá hạn chế, chỉ biết được đang có user đang mở, ngay cả VBA cũng không chạy khi file ở share.
Có cách bạn dùng A-Tool của anh Nguyễn Duy Tuân khả năng sẽ kiểm soát được.

  • #11

Excel ở chế độ Share khá hạn chế, chỉ biết được đang có user đang mở, ngay cả VBA cũng không chạy khi file ở share.
Có cách bạn dùng A-Tool của anh Nguyễn Duy Tuân khả năng sẽ kiểm soát được.

Ở đây em không có thiết lập Share anh ạ. Em để file Excel bình thường, không Protect sheet cũng như workbook.

Vba excel duyệt qua các sheet

  • #12

Ở đây em không có thiết lập Share anh ạ. Em để file Excel bình thường, không Protect sheet cũng như workbook.

Nghĩa là:
- Ban đang mở File 1
- Người dùng đang mở File 2.
Từ file 1, bạn muốn biết người dùng đang ở sheet nào trong file 2?

  • #13

Nghĩa là:
- Ban đang mở File 1
- Người dùng đang mở File 2.
Từ file 1, bạn muốn biết người dùng đang ở sheet nào trong file 2?

Không anh ạ! Em muốn biết người dùng đã chọn những file nào trong chính file của em luôn. Chứ không phải em viết theo kiểu Add-In cho mọi người dùng. Em viết VBA đính kèm luôn trong file và lưu file dưới dạng *.xlsm.

Vba excel duyệt qua các sheet

  • #14

Không anh ạ! Em muốn biết người dùng đã chọn những file nào trong chính file của em luôn. Chứ không phải em viết theo kiểu Add-In cho mọi người dùng. Em viết VBA đính kèm luôn trong file và lưu file dưới dạng *.xlsm.

Chỗ đỏ phải là sheet?
Tôi thấy hơi kỳ nha, nếu bạn đang mở file 1, file ko để ở chế độ share, người khác nhẩy vào mở file 1, lúc đó thì READ ONLY, vậy bạn kiểm soát kiểu j?

  • #15

Chỗ đỏ phải là sheet?
Tôi thấy hơi kỳ nha, nếu bạn đang mở file 1, file ko để ở chế độ share, người khác nhẩy vào mở file 1, lúc đó thì READ ONLY, vậy bạn kiểm soát kiểu j?

Ý! Ở trên là chọn nhiều sheets trong file mà em ghi nhầm nhiều file trong file. Anh xem hình đính kèm. Ở đây em muốn VBA lấy cho được thông tin là người dùng đã chọn 7 sheets và đó là các Sheet: Sheet1, Sheet3, Sheet4, Sheet6, Sheet7, Sheet8Sheet10

  • Vba excel duyệt qua các sheet

    Chon nhieu sheet.jpg

    14 KB · Đọc: 64

Lần chỉnh sửa cuối: 27/9/14

  • #16

Được rồi bà con ơi. Đó là ActiveWindow.SelectedSheets. Mò mẫm từ tối hôm qua đến giờ.

Chúc cả nhà GPE cuối tuần zui zẽ và hạnh phúc!

Vba excel duyệt qua các sheet

  • #17

Được rồi bà con ơi. Đó là ActiveWindow.SelectedSheets. Mò mẫm từ tối hôm qua đến giờ.

Chúc cả nhà GPE cuối tuần zui zẽ và hạnh phúc!

Ừ nhỉ trước giờ mới biết mỗi ActiveSheet còn ActiveWindow chưa để ý

  • #18

Duyệt qua các sheet lấy tên sheet gán vào cell

Chào mọi người
Mình là thành viên mới của diễn đàn mình mong mọi người giúp viết cho một thủ tục duyệt qua các sheet trừ sheet đầu tiên (sheet1) tới sheet nào thì lấy tên của sheet đó gán vào một vùng theo khối ô có sẵn
Cám ơn mọi người

  • LAY TEN SHEET GAN VAO O.xls

    48 KB · Đọc: 46

  • #19

Chào mọi người
Mình là thành viên mới của diễn đàn mình mong mọi người giúp viết cho một thủ tục duyệt qua các sheet trừ sheet đầu tiên (sheet1) tới sheet nào thì lấy tên của sheet đó gán vào một vùng theo khối ô có sẵn
Cám ơn mọi người

Đầu năm tặng bạn 1 Code

PHP:

Public Sub GPE() Dim Ws As Worksheet For Each Ws In Worksheets If Ws.Name <> "Sheet1" Then Ws.Range(Ws.[C3], Ws.[C3].End(xlDown)).Offset(, 1).Value = Ws.Name End If Next Ws End Sub

Chú ý: Gặp sheet trống rỗng cột C thì "vui".

Lần chỉnh sửa cuối: 2/1/15

Vba excel duyệt qua các sheet

  • #20

Một tham khảo cho bạn & những mong nó hữu ích ít nhiều với bạn:

PHP:

Option Explicit Sub GánTenTrangTính() Dim Sh As Worksheet, Rng As Range Dim Rws As Long For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> "Sheet1" Then Set Rng = Sh.UsedRange If Not Rng Is Nothing Then Rws = Rng.Rows.Count - 1 Rng(3).Offset(1).Resize(Rws).Value = Sh.Name End If End If Next Sh End Sub

Vba excel duyệt qua các sheet

Vba excel duyệt qua các sheet

Vba excel duyệt qua các sheet