IF elseとLEFTを組み合わせて列を非表示にする
-
06-07-2019 - |
質問
範囲内のセルの最初の3文字が別のセルの内容と等しい場合に列を非表示にするコードを作成しようとしています。範囲内のセルが空白の場合、列を非表示にするコードがあります;-
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, cell As Range
On Error GoTo ErrHandler
Set r = Me.Range("C8:R8")
Application.ScreenUpdating = False
Application.EnableEvents = False
For Each cell In r
If cell.Value = "" Then
cell.EntireColumn.Hidden = True
Else
cell.EntireColumn.Hidden = False
End If
Next
ErrHandler:
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
およびセルの最初の3文字を識別するためのコード;-
Dim LResult As String
LResult = Left ("Alphabet",3)
しかし、「アルファベット」ではなく特定のセルを参照して、2つを組み合わせるにはどうすればよいですか?
これを機能させたい-提案はありますか?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, cell As Range
On Error GoTo ErrHandler
Set r = Me.Range("B7:CG7")
Application.ScreenUpdating = False
Application.EnableEvents = False
Row = 1
col = 1
For Each cell In r
If cell.Value = "" And Left(cell.Value, 3) = cell(Row, col).Value Then
cell.EntireColumn.Hidden = True
Else
cell.EntireColumn.Hidden = False
End If
Next
ErrHandler:
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
乾杯
解決
ほぼ動作するコードがあります。 cell.Valueを空の文字列と比較しています-左に適用するだけです
LResult = Left (cell.Value,3)
編集:
row = 20
col = 30
For Each cell In r
If cell.Value = "" and Left (cell.Value,3) = Cell(row, col).Value Then
cell.EntireColumn.Hidden = True
Else
cell.EntireColumn.Hidden = False
End If
行と列のセルのデータが必要な場所(例として20、30を使用)
所属していません StackOverflow