2017-07-19 7 views
1

私は、ドロップダウンメニューからの選択に基づいてシートの非表示/再表示を目的としたコードで作業しています。セットアップは次のとおりです。機能のShowAllSheetsとShowSelSheetsのように定義されている複数シート/文字列配列の指定?

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = Range("SelectCP").Address Then 
    Select Case Target.Value 
     Case "All" 
     ShowAllSheets 
     Case "" 
     'do nothing 
     Case Else 
     ShowSelSheets 
     'do nothing 
    End Select 
    End If 
End Sub 

:私は2を指定したい

Else 
If ws.Name <> "Counterparty Overview" Then 
    ws.Visible = xlSheetHidden 

Sub ShowAllSheets() 
Dim ws As Worksheet 
For Each ws In ActiveWorkbook.Sheets 
    ws.Visible = xlSheetVisible 
Next ws 
End Sub 


Sub ShowSelSheets() 
Dim ws As Worksheet 
Dim strType As String 
strType = Worksheets("Counterparty Overview").Range("SelectCP").Value 
For Each ws In ActiveWorkbook.Sheets 
    If InStr(1, ws.Name, strType) > 0 Then 
    ws.Visible = xlSheetVisible 
    Else 
    If ws.Name <> "Counterparty Overview" Then 
     ws.Visible = xlSheetHidden 
    End If 
    End If 
Next ws 
End Sub 

私がいるトラブルは、このビットであります「カウンターパーティーの概要」に加えて他のシートが常に表示されます。 strTypeを変数配列として初期化しようとしましたが、エラーが発生しました。何か案は?

答えて

0

はこれを試してみてください:

Dim SomeSheet as String 
SomeSheet = "Other Sheet Name" 

If ws.Name <> "Counterparty Overview" Then 
    ws.Visible = xlSheetHidden 
    Sheets(SomeSheet).Visible = xlVisible 
    'or 
    Sheets("Other Sheet Name").Visible = xlVisible 

End If 
+1

がこれは参考になりました、ありがとう! – Nick

関連する問題