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
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
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()'. –
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. –