Các Bạn giúp mình sửa code ẩn hiện name theo điều kiện (1 người xem)

Liên hệ QC

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

ndhmoney686

Thành viên thường trực
Tham gia
25/4/12
Bài viết
376
Được thích
104
Mình đang sử dụng code ẩn hiện name siêu tầm được của các Bạn trên GPE. Hiện tại có một vấn đề phát sinh như sau:

Nếu mình để ẩn Name. Thì nó ẩn luôn cả các Name Print_are... (Vùng đặt in cho sheet) làm cho các sheet khi in ko in được theo vùng đặt in (Print_Are...) Các bạn có thể giúp mình sửa code với điều kiện nếu chọn Flase (ẩn name) thì nó ẩn tất cả các Name. Nhưng những Name nào có chữ "Print_Are" ở đầu name thì sẽ ko ẩn. Mong các Bạn sửa code giúp mình. Cảm ơn các Bạn!

Đây là code mình đang sử dụng để ẩn hiện name.
Mã:
Sub HienName()    Dim N As Name
    For Each N In ActiveWorkbook.Names
        N.Visible = flase
    Next
End Sub
 
Lần chỉnh sửa cuối:
Mình đang sử dụng code ẩn hiện name siêu tầm được của các Bạn trên GPE. Hiện tại có một vấn đề phát sinh như sau:

Nếu mình để ẩn Name. Thì nó ẩn luôn cả các Name Print_are... (Vùng đặt in cho sheet) làm cho các sheet khi in ko in được theo vùng đặt in (Print_Are...) Các bạn có thể giúp mình sửa code với điều kiện nếu chọn Flase (ẩn name) thì nó ẩn tất cả các Name. Nhưng những Name nào có chữ "Print_Are" ở đầu name thì sẽ ko ẩn. Mong các Bạn sửa code giúp mình. Cảm ơn các Bạn!

Đây là code mình đang sử dụng để ẩn hiện name.
Mã:
Sub HienName()    Dim N As Name
    For Each N In ActiveWorkbook.Names
        N.Visible = [B][COLOR=#ff0000]flase[/COLOR][/B]
    Next
End Sub

Flase
???

Thì kiểm tra từng tên rồi quyết định ẩn hay không thôi. Có nhiều cách kiểm tra, ví dụ

Mã:
Sub HienName()
Dim N As Name
    For Each N In ActiveWorkbook.Names
        If LCase(Left(N.Name, 9)) <> "print_are" Then N.Visible = False
    Next
End Sub
 
Upvote 0
Mình đang sử dụng code ẩn hiện name siêu tầm được của các Bạn trên GPE. Hiện tại có một vấn đề phát sinh như sau:

Nếu mình để ẩn Name. Thì nó ẩn luôn cả các Name Print_are... (Vùng đặt in cho sheet) làm cho các sheet khi in ko in được theo vùng đặt in (Print_Are...) Các bạn có thể giúp mình sửa code với điều kiện nếu chọn Flase (ẩn name) thì nó ẩn tất cả các Name. Nhưng những Name nào có chữ "Print_Are" ở đầu name thì sẽ ko ẩn. Mong các Bạn sửa code giúp mình. Cảm ơn các Bạn!

Đây là code mình đang sử dụng để ẩn hiện name.
Mã:
Sub HienName()    Dim N As Name
    For Each N In ActiveWorkbook.Names
        N.Visible = flase
    Next
End Sub
Bạn thay câu lệnh N.Visible = flase (FALSE chứ không phải FLASE) bởi câu lệnh N.Visible = InStr(N.Name, "Print_Area") > 0 xem sao.
 
Upvote 0
Mình đang sử dụng code ẩn hiện name siêu tầm được của các Bạn trên GPE. Hiện tại có một vấn đề phát sinh như sau:

Nếu mình để ẩn Name. Thì nó ẩn luôn cả các Name Print_are... (Vùng đặt in cho sheet) làm cho các sheet khi in ko in được theo vùng đặt in (Print_Are...) Các bạn có thể giúp mình sửa code với điều kiện nếu chọn Flase (ẩn name) thì nó ẩn tất cả các Name. Nhưng những Name nào có chữ "Print_Are" ở đầu name thì sẽ ko ẩn. Mong các Bạn sửa code giúp mình. Cảm ơn các Bạn!

Đây là code mình đang sử dụng để ẩn hiện name.
Mã:
Sub HienName()    Dim N As Name
    For Each N In ActiveWorkbook.Names
        N.Visible = flase
    Next
End Sub
Thử vầy xem
PHP:
Sub HienName()
Dim N As Name
    For Each N In ActiveWorkbook.Names
      If N.Name Like "Print*" Then
         N.Visible = True
      Else
         N.Visible = False
      End If
    Next
End Sub
 
Upvote 0
Thử vầy xem
PHP:
Sub HienName()
Dim N As Name
    For Each N In ActiveWorkbook.Names
      If N.Name Like "Print*" Then
         N.Visible = True
      Else
         N.Visible = False
      End If
    Next
End Sub
Đường nào thì cũng kiểm tra điều kiện, mình có thể rút gọn một chút như vầy cũng được anh:
[GPECODE=vb]Sub HienName()
Dim N As Name
For Each N In ActiveWorkbook.Names
N.Visible = (N.Name Like "*Print*")
Next
End Sub[/GPECODE]
 
Upvote 0
Cảm ơn Anh Siwtom, Anh Nghiaphuc, Anh Quanghai nhiều nhiều! Em ngồi test thử. Thấy có code này nó ẩn được các name kia còn riêng name Print_Are là ko ẩn.

Đường nào thì cũng kiểm tra điều kiện, mình có thể rút gọn một chút như vầy cũng được anh:
[GPECODE=vb]Sub HienName()
Dim N As Name
For Each N In ActiveWorkbook.Names
N.Visible = (N.Name Like "*Print*")
Next
End Sub[/GPECODE]
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Nếu muốn hiện name hoặc ẩn name thì phải vào sửa code. Vậy Em có thể tạo 2 cái butten "Hiện Name" và "Ẩn Name". Để khi nào muốn hiện name thì bấm vào butten "Hiện name" còn nếu muốn ẩn thì lại bấm vào butten "Ẩn Name" liệu có được ko Anh chị và các Bạn?
Mong Anh chị và các Bạn giúp Em!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn Anh Siwtom, Anh Nghiaphuc, Anh Quanghai nhiều nhiều! Em ngồi test thử. Thấy có code này nó ẩn được các name kia còn riêng name Print_Are là ko ẩn.

Cũng xin nói thêm là các name Print_Area này khi nhìn trong cửa sổ Name Manager (Ctrl+F3) thì chúng ta chỉ thấy chúng có tên là Print_Area, nhưng trong VBA thì nó lại có tên với dạng 'Tên sheet'!Print_Area, do đó cái chữ Print đó nó không nằm ở đầu của N.Name. Chính vì vậy N.Name Like "Print*" sẽ luôn cho kết quả False, phải là N.Name Like "*Print*" thì mới ra kết quả True.
Mà cách ở bài #3 (N.Visible = InStr(N.Name, "Print_Area") > 0) cũng được mà bạn.
 
Upvote 0
Em có tạo ở trong file đính kèm. Có 2 cái butten "Hiện Name" và "Ẩn Name" . Mong các Anh chị giúp Em thêm để 2 cái butten đó thực hiện được việc ẩn name và hiện name. Em cảm ơn!
Bạn bỏ cả 2 cái nút đó đi, thay vào đó là 1 Toggle Button hoặc 1 Checkbox.
Bạn tham khảo trong file nhé, ở đây tôi sử dụng Checkbox:
[GPECODE=vb]Private Sub CheckBox1_Click()
Dim N As Name
For Each N In ActiveWorkbook.Names
N.Visible = CheckBox1 Or (N.Name Like "*Print*")
Next
End Sub[/GPECODE]
 

File đính kèm

Upvote 0
Bạn bỏ cả 2 cái nút đó đi, thay vào đó là 1 Toggle Button hoặc 1 Checkbox.
Bạn tham khảo trong file nhé, ở đây tôi sử dụng Checkbox:
[GPECODE=vb]Private Sub CheckBox1_Click()
Dim N As Name
For Each N In ActiveWorkbook.Names
N.Visible = CheckBox1 Or (N.Name Like "*Print*")
Next
End Sub[/GPECODE]


Tuyệt quá. Em cảm ơn Anh!
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom