Hur döljer man kolumner i realtid baserat på användarinmatning i Excel?
Att dölja kolumner i Excel kan vara en vanlig uppgift, men har du någonsin försökt att dölja kolumner automatiskt baserat på specifika indatavärden? Till exempel, när jag skriver in texten "AA" i en cell döljs kolumn A; när jag anger "BB" döljs kolumnerna B och C; när du anger "CC" döljs kolumnerna D och E; när du anger "DD" döljs kolumn F, som visas i demon nedan. Den här artikeln kommer att tillhandahålla en VBA-kod för att lösa det i Excel.
Dölj eller visa kolumner i realtid baserat på användarinmatning med VBA-kod
Dölj eller visa kolumner för att filtrera data baserat på användarinmatning med VBA-kod
Dölj eller visa kolumner i realtid baserat på användarinmatning med VBA-kod
För att dölja de specifika kolumnerna i realtid baserat på ingångsvärden, använd nedanstående VBA-kod:
1. I kalkylbladet där du vill dölja kolumner högerklickar du på arkfliken och klickar sedan Visa kod från snabbmenyn, se skärmdump
2. I det öppnade Microsoft Visual Basic för applikationer fönster, kopiera och klistra in följande VBA-kod i Blad (kod) fönster.
VBA-kod: Dölj kolumner i realtid baserat på användarinmatning
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby ExtendOffice
xcell = Range("K1").Value
Select Case xcell
Case "AA": Columns("A").EntireColumn.Hidden = False
Columns("A").EntireColumn.Hidden = True
Case "BB": Columns("B:C").EntireColumn.Hidden = False
Columns("B:C").EntireColumn.Hidden = True
Case "CC": Columns("D:E").EntireColumn.Hidden = False
Columns("D:E").EntireColumn.Hidden = True
Case "DD": Columns("F").EntireColumn.Hidden = False
Columns("F").EntireColumn.Hidden = True
Case Else
Columns("A:G").EntireColumn.Hidden = False
End Select
End Sub
- Case "AA": Kolumner("A").EntireColumn.Hidden = False
- Kolumner("A").EntireColumn.Hidden = True
3. Stäng sedan kodfönstret. Nu, när du anger "AA" i cell K1, och tryck ange nyckel, kolumnen A är dold; när du anger "BB" och tryck på ange nyckel, kolumnen B och C är dolda, och så vidare. Om du anger något annat värde eller tar bort innehållet kommer de dolda kolumnerna att visas på en gång, se nedan demo:
Dölj eller visa kolumner för att filtrera data baserat på användarinmatning med VBA-kod
I det här exemplet kommer jag att filtrera ett dataintervall baserat på ett angett produktnamn. När jag anger "Hoodie" visas bara Hoodie-information och andra kolumner kommer att döljas på en gång; och när jag anger "Alla" kommer alla kolumner att visas som nedanstående demonstration:
1. I kalkylbladet där du vill dölja kolumner högerklickar du på arkfliken och klickar sedan Visa kod från snabbmenyn, se skärmdump:
2. I det öppnade Microsoft Visual Basic för applikationer fönster, kopiera och klistra in följande VBA-kod i Blad (kod) fönster.
VBA-kod: Dölj eller visa kolumner för att filtrera data baserat på användarinmatning
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby ExtendOffice
Dim x As Variant, y As String
If Target.Address = "$K$1" Then
y = Target.Value
With Range("B1:H1")
Application.ScreenUpdating = False
.EntireColumn.Hidden = (y <> "All")
If y <> "All" Then
For Each x In .Cells
If x = y Then x.EntireColumn.Hidden = False
Next
End If
Application.ScreenUpdating = True
End With
End If
End Sub
3. Stäng sedan kodfönstret. Nu, om du anger produktnamnet i cell K1, kommer endast motsvarande kolumner att visas, den andra kommer att döljas; och om du skriver in texten "Alla", kommer alla kolumner att visas som nedanstående demonstration:
Bästa kontorsproduktivitetsverktyg
Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid. Klicka här för att få den funktion du behöver mest...
Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!