2017-07-13 13 views
0

列を非表示にし、2つの異なるExcel VBAを持つ列を表示しようとしています 隠すコードが正常に機能していますが、列のVBAボタンが点滅して何もしません。可能な理由は、私が列が隠されているため利用できないことを表示しようとするときです。隠しコラムを読むには、どうすればいいですか?セルの値に基づいて列を非表示/表示する

Sub SHOW() 
Dim rngX1 As Range 

    Set rngX1 = Worksheets("Sheet1").Range("A4:P4").Find(Range("G1"), LookIn:=xlValues, lookAt:=xlWhole) 
    If Not rngX1 Is Nothing Then 
     If MsgBox("Do you want to delete Column  " & Range("G1"), vbYesNo) = vbNo Then 
      Exit Sub 
     End If 
    rngX1.EntireColumn.Hidden = False 
    End If 
End Sub 
+0

あなたは例のデータのスクリーンショットでこの質問を更新でき...あなたのコードの問題は、例の分離にあるものヒントの –

答えて

1

Find()を使用して非表示の列のコンテンツを検索することはできません。代わりにMatchを使用することができます。

未テスト:

Sub SHOW() 
    Dim m, sht 
    Set sht = Worksheets("Sheet1") 
    m = Application.Match(Range("G1"), sht.Range("A4:P4"), 0) 

    If Not IsError(m) Then 
     If MsgBox("Do you want to delete Column  " & _ 
           Range("G1"), vbYesNo) = vbNo Then 
      Exit Sub 
     End If 
     sht.Columns(m).Hidden = False 
    End If 
End Sub 
+0

おかげ明確ではありません –

関連する問題