VBA для копирования / вставки строк между листами, когда количество строк всегда меняется? - PullRequest
0 голосов
/ 23 октября 2018

Используя VBA, мне нужно скопировать определенные строки на основе данных одного столбца и вставить в другой лист.Хитрость в том, что количество строк, которые мне нужно скопировать, постоянно меняется.Используя столбец «A», макрос должен копировать все строки, пока не будет найдена фраза «ID респондента».Затем мне нужно скопировать все строки выше этого и вставить в лист B. Я нашел кое-что в другом макросе, которое выглядит несколько полезным, но у меня проблемы с преобразованием…

Sheets("WorksheetA").Select
Columns("A:A").Select
       Selection.Find(What:="Respondent ID", after:=ActiveCell, 
LookIn:=xlFormulas _
           , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, 
           _ MatchCase:=False, SearchFormat:=False).Activate
       Rows(ActiveCell.Row - 1).Select
       Selection.Copy
       Rows("1:1").Select
       ActiveSheet.Paste

Но это просто копирует одну строкуи он только копирует в тот же лист.Вы можете помочь?

1 Ответ

0 голосов
/ 23 октября 2018

Я нашел способ, который работает для меня.Если вы также пытаетесь это сделать, попробуйте найти ячейку с этим определенным значением (в данном случае «Идентификатор респондента»), а затем либо очистите содержимое, либо удалите все строки ПОД ЭТОЙ строкой (я использовал чистое содержимое.) Затем вы можете скопироватьи вставьте оставшиеся данные.

`Sheets("SheetA").Select
Columns("A:A").Select
       Selection.Find(What:="Respondent ID", after:=ActiveCell, LookIn:=xlFormulas _
           , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
           MatchCase:=False, SearchFormat:=False).Activate
Rows(ActiveCell.row + 1 & ":" & Rows.Count).ClearContents`
...