2017-06-19 1 views
0

Ich versuche einfach nach einer bestimmten Spalte basierend auf der Kopfzeile suchen und fügen Sie eine neue Spalte direkt davor (so auf der linken Seite der Spalte). Gerade jetzt sucht mein Code nach allen Spalten, die sogar meine Suche enthalten und fügt eine neue Spalte 2 Spalten auf der linken Seite ein. Zum Beispiel habe ich für den Header gesucht werden soll, die Paid to Date nur sagt, aber es fügt auch eine Spalte neben Commission Paid to Date usw.Fügen Sie eine neue Spalte vor einer bestimmten Spalte basierend auf Zeile Header-VBA

Sheets(NewSheet).Select 
Set ColHeaders = Range("A4:CD4").Find("Paid to Date") 
If ColHeaders Is Nothing Then 
    MsgBox "Paid to Date Column was not found." 
    Exit Sub 
Else 
    Columns(ColHeaders.Column).Offset(0, -1).Insert 
End If 
+0

zu sein, da Sie wissen, dass Sie Einfügen von 2 Spalten nach links, wie wäre es, den Offset um 1 zu ändern? Offset (0,0) oder Sie könnten den Offset-Teil entfernen – 99moorem

+1

Es gibt mehr Kriterien für Range.Find() -Methode. Man erlaubt Ihnen, es so einzustellen, dass nur die ganze Zelle und nicht der Teil betrachtet wird. Google 'Range.Find()'. –

+0

Zusätzlich: Ich empfehle zu lesen (und folgen!) [VBA Best Practices: Vermeiden Sie die Auswahl oder aktivieren] (https://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/9292/avoid- using-select-or-activate) und [VBA Best Practices: Niemals das Arbeitsblatt übernehmen] (https://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/9218/never-assume-the- Arbeitsblatt), um Ihren Code zu verbessern. –

Antwort

Verwandte Themen