Как скопировать несмежные столбцы в другую книгу Excel? - PullRequest
0 голосов
/ 27 июня 2019

Мне нужно скопировать несколько несмежных столбцов в другую книгу Excel с именем Extract.xlsx

'Path to destination
MyPath = "C:\Users\valerie\Desktop\Template\Extract.xlsx"

'Range Selection 
Range("A:A, G:G, J:J, K:K, M:M").Select 'This is what I initially recorded from excel macro, but realised that an error popped up saying "That command cannot be used on multiple selections."

'Open Destination Workbook, was testing it out separately so I know this part onwards works
Workbooks.Open(MyPath)
Set wb = Workbooks.Open(MyPath)
Set ws1 = wb.Worksheets("Sheet1")
ws1.Activate
Range("A1").Select
Activesheet.Paste

Я попытался найти некоторые примеры, но я не совсем понял, о чем они говорят, или появилось то же сообщение об ошибке

1 Ответ

1 голос
/ 27 июня 2019

Поскольку вы не используете PasteSpecial, вы можете скопировать свои данные в один ряд.Я просто добавлю переменные для удобочитаемости и удобства использования:

dim Rng_A as Range, Rng_B as Range, wb as Workbook, ws1 as Worksheet
MyPath = "C:\Users\valerie\Desktop\Template\Extract.xlsx"
Workbooks.Open(MyPath)
Set wb = Workbooks.Open(MyPath)
Set ws1 = wb.Worksheets("Sheet1")
' ThisWorkbook - for a book where code is executed
set Rng_A = ThisWorkbook.Worksheets("Your_Sheet_Name").Range("A:A, G:G, J:J, K:K, M:M")
set Rng_B = ws1.Range("A1")
Rng_A.Copy Rng_B

Поскольку вы работаете с несколькими листами / книгами, я советую вам знать поле обзора для вашего кода и стараться избегать Range (...) использование без объекта, к которому оно относится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...