Làm thế nào để duyệt qua các sheet được chọn? (3 người xem)

  • Thread starter Thread starter bivily
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

bivily

Thành viên hoạt động
Tham gia
11/10/07
Bài viết
110
Được thích
26
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!
 
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".
 
Upvote 0
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:
Upvote 0
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.
 
Upvote 0
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?
 
Upvote 0
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
 
Upvote 0
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.
 
Upvote 0
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.
 
Upvote 0
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.
 
Upvote 0
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.
 
Upvote 0
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.
 
Upvote 0
Ở đâ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?
 
Upvote 0
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.
 
Upvote 0
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?
 
Upvote 0
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
 

File đính kèm

  • Chon nhieu sheet.jpg
    Chon nhieu sheet.jpg
    14 KB · Đọc: 64
Lần chỉnh sửa cuối:
Upvote 0
Đượ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!
 
Upvote 0
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
 

File đính kèm

Upvote 0
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:
Upvote 0
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
 
Upvote 0
Web KT

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

Back
Top Bottom