VBA Dölj kolumner

Excel VBA Dölj kolumner

Dölja är det enkla men du måste förstå konceptet här. För att dölja kolumnen med VBA måste vi bestämma vilken kolumn vi behöver dölja. För att ange vilken kolumn som ska döljas måste vi använda RANGE-objektet.

Räckvidd ("A: A")

Då måste vi använda egenskapen "Hela kolumnen".

Område ("A: A"). EntireColumn

I hela kolumnegenskapen måste vi använda egenskapen "Dold".

Område ("A: A"). EntireColumn.Hidden

Sedan måste vi äntligen ställa in den dolda egenskapen till SANT.

Område ("A: A"). EntireColumn.Hidden = SANT 

Detta döljer kolumn A.

Hur döljer jag kolumner i VBA?

Vi kan dölja kolumner på flera sätt. Vi kan dölja en kolumn med hjälp av ett Range-objekt genom att använda CELLS-egenskapen. Baserat på den metod vi använder behöver vi konstruera vår VBA-kod.

Du kan ladda ner denna Excel-mall för VBA-döljkolumner här - VBA-dölj kolumner för Excel-mall

Exempel # 1 - Dölj med hjälp av Range Object

Om du vill dölja en viss kolumn anger du kolumnen i RANGE-objektet. Titta på nedanstående data.

Nu döljer vi hela kolumn A med följande kod.

Koda:

 Sub Range_Hide () Range ("A: A"). EntireColumn.Hidden = True End Sub 

Så när vi kör koden får vi följande resultat.

Exempel # 2 - Dölj med kolumnegenskap

Om du vill dölja kolumnen med egenskapen Kolumner är nedanstående kod för dig.

Koda:

 Sub Range_Hide () kolumner ("B"). Hidden = True End Sub 

Detta kommer att dölja kolumn B. Här måste du tänka var egenskapen Hela kolumnen är. När du använder egenskapen Kolumner är det inte nödvändigt att använda hela egenskapen Kolumn.

Vi kan fortfarande använda hela kolumnegenskapen men inte nödvändigtvis. Och kod för detsamma ges nedan.

Koda:

 Underkolumner_Dölj () kolumner ("B"). EntireColumn.Hidden = True End Sub 

Detta borde också fungera bra.

Vi kan också använda kolumnnumret istället för alfabetisk referens. Och kod för detsamma ges nedan.

Koda:

 Underkolumner_Göm () Kolumner (4) .EntireColumn.Hidden = True End Sub 

Detta döljer kolumn D.

Exempel # 3 - Dölj flera kolumner

Vi kan också dölja flera kolumner åt gången. För detta måste vi nämna den första och den sista kolumnen, så att mellan kolumnen också kommer att döljas. För samma data som exempel # 1, använd följande kod för att dölja flera kolumner.

Koda:

 Sub Columns_Hide () Range ("A: C"). EntireColumn.Hidden = True End Sub 

Detta döljer kolumn A till C.

Vi kan också använda följande kod för att dölja flera kolumner i Excel VBA.

Koda:

 Sub Multi_Column_Hide () Kolumner ("A: C"). EntireColumn.Hidden = True End Sub 

Ovanstående metoder döljer de första tre kolumnerna, dvs. A, B och C.

Exempel # 4 - Dölj kolumner med en cell

Vi kan också dölja en kolumn baserat på en enda cellreferens. Vi behöver inte ange hela kolumnreferensen för att dölja kolumnen. Med bara en enda cellreferens borde vi kunna dölja en kolumn.

Koda:

 Sub Single_Hide () Range ("A5"). EntireColumn.Hidden = True End Sub 

Detta döljer hela kolumn A.

Exempel # 5 - Dölj alla alternativa kolumner

Antag att du har en data som liknar nedanstående bild.

Vi måste dölja alla alternativa kolumner som är tomma. För att detta ska hända måste vi använda slingor, nedanstående kod kommer att göra jobbet för oss.

Koda:

 Sub AlternativeColumn_Hide() Dim k As Integer For k = 1 To 7 Cells(1, k + 1).EntireColumn.Hidden = True k = k + 1 Next k End Sub 

This will hide every alternate column.

Example #6 – Hide Every Empty Column

In the previous example every other alternative column was blank we have hidden easily. But look at the below data.

Here empty columns pattern is not standard. In these cases below code will hide all the empty columns, it doesn’t matter what the pattern is.

Code:

 Sub Column_Hide1() Dim k As Integer For k = 1 To 11 If Cells(1, k).Value = "" Then Columns(k).Hidden = True End If Next k End Sub 

When you run the code you will get the result as follows.

Example #7 – Hide Columns Based On Cell Value

Now we will see how to hide column based on the cell value. For an example look at the below data.

Here I want to hide all the columns if the heading is “No”. Below code will do it for me.

Code:

 Sub Column_Hide_Cell_Value() Dim k As Integer For k = 1 To 7 If Cells(1, k).Value = "No" Then Columns(k).Hidden = True End If Next k End Sub 

When you run the code you will get the result as follows.