Надеюсь, вы сможете помочь. То, что я пытаюсь достичь, заключается в следующем: я хочу, чтобы VBA просматривал заголовки столбцов, чтобы найти заголовок, содержащий текст «CountryCode», как только он найдет это, я хочу, чтобы он вырезал этот столбец и вставил его в шестой столбец. Моя попытка кода ниже, но она не работает правильно. Я добавил скриншоты для лучшего понимания.VBA Копия и вставка Столбец на основе столбца Заголовок
Я знаю Destination:=Worksheets("Sheet1").Range("E5")
неправильно, я просто не могу видеть, чтобы получить его, чтобы вставить в недавно созданный F Колонка
Screen Shot: Код страны был в колонке W Я просто не могу получить его, чтобы вставить в новый столбец F. Любая помощь будет принята с благодарностью.
Sub Sample()
Dim ws As Worksheet
Dim aCell As Range, Rng As Range
Dim col As Long, lRow As Long
Dim colName As String
'~~> Change this to the relevant sheet
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
Set aCell = .Range("A1:X50").Find(What:="CountryCode", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False)
'~~> If Found
If Not aCell Is Nothing Then
Worksheets("Sheet1").Range("W1:W3").Cut _
Destination:=Worksheets("Sheet1").Range("E5")
Columns([23]).EntireColumn.Delete
Columns("F:F").Insert Shift:=xlToRight, _
CopyOrigin:=xlFormatFromLeftOrAbove
'~~> If not found
Else
MsgBox "Country Not Found"
End If
End With
End Sub
Ваш «проблемный» код уже находится внутри 'With ws' (' ws' уже определен и установлен в 'ThisWorkbook.Sheets (" Sheet1 ")'). поэтому внутри цикла вам нужно изменить «Worksheets» («Sheet1»). Range («W1: W3») 'to' .Range («W1: W3») ', а также' Destination: = Worksheets («Sheet1») .Range ("E5") 'to' Destination: =. Range ("E5") ', в случае, если они являются целью и назначением вашей копии> Вставить –