Ich möchte bestimmte Spalten in meinem Excel-Arbeitsblatt ("Vorlagenkonto") basierend auf einem Wert aus einer Auswahlliste, die in Zelle AC5 ausgewählt ist, ausblenden.Ausblenden von Spalten in Excel basierend auf Zellenwert
Die Logik ist wie folgt:
1) Ist die Auswahlliste Wert in Zelle AC5 ist „Energie und Ressourcen“, dann würde ich die Spalten BJ mögen: BO versteckt werden.
2) Ist die Auswahlliste Wert in Zelle AC5 ist „Verteidigung“, dann würde ich die Spalten BP mag: CA versteckt werden und so weiter ..
3) Else wenn AC5 enthält keine der Auswahllistenwert in AC5 dann nichts verstecken
Der Code, den ich versuchte, sieht so aus, aber es funktioniert nicht. Kann mir bitte jemand etwas mitteilen?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cellvalue As String
Dim ws As Worksheet
Set ws = Sheet("Template account")
If cellvalue Like "*Energy and Resources*" Then
Columns("BJ:BO").EntireColumn.Hidden = True
Else
If cellvalue Like "*Defence*" Then
Columns("BP:CA").EntireColumn.Hidden = True
Else
Exit Sub
End If
End Sub
Sie nie 'Target' verwenden. Ich denke, du musst nur 'cellvalue' durch' Target.Value' ersetzen und es sollte funktionieren. Vielleicht möchten Sie die Spalten mit 'ws.Columns (...' ebenfalls qualifizieren. – BruceWayne
Ich bezweifle, dass Ihr Code sogar kompiliert. Ich würde erwarten, dass VBA sich über ein fehlendes 'End If' beschweren würde benutze 'ElseIf' anstelle von' Else {newline} If' ?. Auch der letzte 'Else'-Block ist redundant, und 'cellValue' wird benutzt, bevor ihm etwas zugewiesen wird, also wird es immer eine leere Zeichenkette sein, also keine Die Bedingungen können immer funktionieren. 'Sheets' sollten' Worksheets' sein, und 'Columns' bezieht sich implizit auf das aktive Blatt, Sie sollten stattdessen" Target.Parent "verwenden oder zumindest mit diesem vergleichen, um sicherzugehen, dass Sie es sind Arbeiten am richtigen Arbeitsblatt –