मैं इस VBA का उपयोग Sheet1, Sheet5 और Sheet8 को छोड़कर सभी शीट को अदृश्य बनाने के लिए करता हूं:

Sub Invisible_Version_01 ()
Dim b As Worksheet
For Each b In Worksheets
    If b.CodeName <> "Sheet1" _
    And b.CodeName <> "Sheet5" _
    And b.CodeName <> "Sheet8" _
    Then
    b.Visible = False
    End If
Next b
End Sub

यह सब एकदम सही काम करता है।


अब, मैं इसे दूसरे तरीके से करना चाहता हूं जिसका अर्थ है कि Sheet1, Sheet5 और Sheet8 को छोड़कर सभी शीट दिखाई देनी चाहिए। इसलिए, मैंने इसके साथ जाने की कोशिश की VBA:

Sub Invisible_Version_02 ()
Dim b As Worksheet
For Each b In Worksheets
    If b.CodeName = "Sheet1" _
    And b.CodeName = "Sheet5" _
    And b.CodeName = "Sheet8" _
    Then
    b.Visible = False
    End If
Next b
End Sub

हालांकि, जब मैं इस कोड को चलाता हूं तो कुछ भी नहीं होता है।
Sheet1, Sheet2 और Sheet3 को छिपाने के लिए मुझे VBA को कैसे संशोधित करना चाहिए?

0
Michi 3 नवम्बर 2020, 16:28

2 जवाब

सबसे बढ़िया उत्तर

कृपया इस तरह से प्रयास करें:

Sub Invisible_Version_01 ()
Dim b As Worksheet
For Each b In Worksheets
    If b.CodeName <> "Sheet1" _
        And b.CodeName <> "Sheet5" _
        And b.CodeName <> "Sheet8" _
                                  Then
       b.Visible = True
    Else
       b.Visible = False
    End If
Next b
End Sub
1
FaneDuru 3 नवम्बर 2020, 16:40

आप वर्तमान में और का उपयोग करके तीन विकल्पों के विरुद्ध एक नाम की जांच कर रहे हैं, जिसका अर्थ है केवल जब एक शीट का नाम तीनों विकल्पों के बराबर होगा तो दृश्यता False पर सेट हो जाएगी। कहने की जरूरत नहीं है कि ऐसा कभी नहीं होगा। Or में बदलकर हल किया जा सकता है, लेकिन मुझे लगता है कि यह Select Case के लिए एक अच्छा उपयोगकेस हो सकता है, कोशिश करें:

Sub Invisible_Version_02()

Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
    Select Case ws.CodeName
        Case "Sheet1", "Sheet5", "Sheet8"
            ws.Visible = False
        Case Else
            ws.Visible = True
    End Select
Next

End Sub

यह सभी कार्यपत्रकों पर लूप करेगा और यह सुनिश्चित करेगा कि जो पहले छिपे हुए थे वे जरूरत पड़ने पर फिर से दिखाई दें।

3
JvdV 3 नवम्बर 2020, 16:40