Frage

Ich versuche, einige Code zu schreiben Spalten ausblenden, wenn die ersten drei Zeichen von Zellen in einem Bereich, den Inhalt eines anderen gleich. Ich habe den Code für Spalten, wenn Zellen in einem Bereich versteckt, da dies sind leer; -

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

Und der Code für den ersten 3 charcters einer Zelle identifizierende; -

Dim LResult As String

LResult = Left ("Alphabet",3)

Aber wie kombiniere ich die beiden, eine bestimmte Zelle verweisen, anstatt „Alphabet“?

Cant bekommen dies funktioniert - irgendwelche Vorschläge

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

Prost

War es hilfreich?

Lösung

Sie haben fast den Arbeitscode. Sie vergleichen cell.Value auf einen leeren String - jetzt nur um es links gelten

LResult = Left (cell.Value,3)

Edit:

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

, wo Sie die Daten aus der Zelle in Zeile und Spalte wollen (ich habe 20, 30 als Beispiel)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top