Я пытаюсь скопировать несколько столбцов с одного листа на другой. Некоторые из них имеют одинаковый заголовок, большинство, если они немного отличаются (на одном листе заголовок - «адрес», а на листе, куда я хотел вставить, - «адресная строка»). Я не хочу определять диапазон вставки на основе номера столбца или буквы столбца, но на основе заголовка столбца.
Причина в том, что порядок столбца меняется еженедельно, а также имя заголовка, так что самый простой способ, который мне удалось найти, - это определить все заголовки на обоих листах, используя код vba, и когда порядок или имя изменилось, я может изменить код.
Мне удалось найти в Интернете следующий код и адаптировать его к своим потребностям (спасибо всем за то, что поделились своими знаниями).
Sub Order_columns()
Sheets("Original Data").Select
With Sheets("original data").Rows(1)
Set t = .Find("address", LookAt:=xlWhole)
If Not t Is Nothing Then
Columns(t.Column).EntireColumn.copy _
Destination:=Sheets("Contract data").Range("f1")---- here the column name is Address line
With Sheets("original data").Rows(1)
Set t = .Find("country", LookAt:=xlWhole)
If Not t Is Nothing Then
Columns(t.Column).EntireColumn.copy _
Destination:=Sheets("Contract data").Range("j1") 'here the column name is Country and state
end sub
Код отлично работает для поиска столбца с заголовком «адрес», скопируйте его и вставьте в столбец F. Я просто хочу вставить его, если заголовок - это строка адреса.