Note: The other languages of the website are Google-translated. Back to English

 Hur väljer jag en kolumn baserat på kolumnrubriken i Excel?

Om du antar att du har ett stort kalkylblad som innehåller flera kolumner, och nu vill du välja den specifika kolumnen baserat på kolumnrubrikens namn. Att hitta kolumn för kolumn i ett stort kalkylblad kommer att slösa mycket tid, den här artikeln kommer jag att introducera en snabb metod för att lösa detta jobb i Excel.

Välj en kolumn baserat på kolumnrubrikens namn med VBA-kod


Välj en kolumn baserat på kolumnrubrikens namn med VBA-kod

Följande VBA-kod kan hjälpa dig att välja kolumner baserat på ett specifikt rubriknamn, gör så här:

1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulerna Fönster.

VBA-kod: Välj kolumn baserat på kolumnrubrikens namn:

Sub FindAddressColumn()
'Updateby Extendoffcie
    Dim xRg As Range
    Dim xRgUni As Range
    Dim xFirstAddress As String
    Dim xStr As String
    On Error Resume Next
    xStr = "Name"
    Set xRg = Range("A1:P1").Find(xStr, , xlValues, xlWhole, , , True)
    If Not xRg Is Nothing Then
        xFirstAddress = xRg.Address
        Do
            Set xRg = Range("A1:P1").FindNext(xRg)
            If xRgUni Is Nothing Then
                Set xRgUni = xRg
            Else
                Set xRgUni = Application.Union(xRgUni, xRg)
            End If
        Loop While (Not xRg Is Nothing) And (xRg.Address <> xFirstAddress)
    End If
    xRgUni.EntireColumn.Select
End Sub

Anmärkningar: I ovanstående kod, A1: P1 är utbudet av rubriker som du vill välja kolumner från, och “Namn”I manuset xStr = "Namn" är rubriknamnet som du vill välja kolumner baserat på. Ändra dem efter dina behov.

3. När du har kopierat och klistrat in koden, tryck på F5 nyckel för att köra den här koden, och alla kolumner med det specifika rubriknamnet har valts på en gång, se skärmdump:


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

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!
officetab botten
Sortera kommentarer efter
Kommentarer (6)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Det här är bra, men tänk om jag ville kopiera säg, CustomerName, OrderNumber, OrderDate, FulfillmentDate, OrderStatus från Sheet1 med många fler kolumner.
Hur anger jag bara de kolumner som behövs för att kopieras till ett annat ark? Detta verkar bara specificera en kolumn.
Jag har provat en del saker, men problemet är mer där kolumnerna inte nödvändigtvis är i samma ordning på källbladet. Källdata i Sheet1 klistras in från Windows urklipp till Excel-arket.

Det kan vara CustomerName, OrderDate, OrderNumber, OrderStatusm FulfillmentDate eller någon annan order.

Jag behöver att de kopieras till ett nytt ark i en specifik ordning eftersom det finns formler i Blad2 som tillämpas på det som kopieras från Blad1 till Blad2.

Förutom att flytta runt kolumner efter att ha klistrat in från Windows urklipp kan jag inte lista ut detta.

Vänligen hjälp om möjligt.

Tack snälla för ovanstående.
Denna kommentar minimerades av moderatoren på webbplatsen
Dim xRg As Range
Dim xRgUni As Range
Dim xFirstAddress As String
Dim xStr As String

Deklareras variabler.

För att använda ovanstående kod igen för en annan kolumn måste du därför deklarera nya variabler.

Dim xRg2 As Range
Dim xRgUni2 As Range
Dim xFirstAddress2 Som sträng
Dim xStr2 Som sträng

Och ersätt varje instans av xRg med xRg2 i koden ect. Låter det vettigt?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, ser jättebra ut. Men jag får kompileringsfelet: Argumentet är inte valfritt när jag markerar ". Union". Vad ska jag göra?
Denna kommentar minimerades av moderatoren på webbplatsen
Tack - först verkade det fungera, men sedan märkte jag att det inte inkluderade kolumnen först hittade - det började med den andra och vidare.

Vilket kan förklaras: du ställer in xRg två gånger, men du inkluderar inte den första.

TBH: Först trodde jag att det fungerade bra, men sedan dök det där "felet" upp och jag var tvungen att ta reda på varför...

Jag fixade det enligt följande: (i Excel blir kommentarerna gröna och mina redigeringar visas: '***)



Sub FindAddressColumn()

'Uppdatering av Extendoffcie

Dim xRg As Range

Dim xRgUni As Range

Dim xFirstAddress As String

Dim xStr As String

On Error Resume Next
xStr = "Namn"
Ställ in xRg = Range("A1:P1").Find(xStr, , xlValues, xlPart, , , True)

Om inte xRg är ingenting då

xFirstAddress = xRg.Address

Do

Om xRgUni är ingenting då

Ställ in xRgUni = Range(xFirstAddress) '*** Använder det först hittade intervallet

annars

Ställ in xRgUni = Application.Union(xRgUni, xRg)

End If



Set xRg = Range("A1:P1").FindNext(xRg) '*** Söker nu efter de andra/nästa



Loop While (Not xRg Is Nothing) And (xRg.Address <> xFirstAddress)

End If

xRgUni.EntireColumn.Select

End Sub




Det här fungerar nu för mig, men jag hoppas kunna lära av dig om jag förbisett något.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Kan du föreslå makrot för problemet som nämns nedan av Shaun
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket räddade min dag!
Det finns inga kommentarer här ännu

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL