Я новичок в VBA и хочу написать простой макрос для извлечения данных с одного листа и добавления его на другой рабочий лист в пределах одной и той же книги. Может ли кто-нибудь из вас помочь мне с макросом для того же? благодаря!Макрос для извлечения данных из одного ws в другой в Excel 2010
ответ
sub copy
thisworkbook.sheets(put here number of sheet to copy TO).cells(rows,columns).value=thisworkbook.sheets(number of sheet to copy FROM).cells(rows,columns).value
end sub
пример
Sub Copy()
ThisWorkbook.Sheets(1).Cells(1,1).Value=ThisWorkbook.Sheets(2).Cells(1,1).Value
End Sub
это можно было бы скопировать содержимое из второго листа - ячейки "А1" на первом листе - ячейки "A1"
что-нибудь еще?
для копирования больших областей вместо диапазона использования ячеек (ячейки (1,1), ячейки (3,1)), этот экземпляр будет скопировать содержимое из ячеек A1 в A3 – Lance
Поскольку вы никогда не кодируются прежде, вы можете добавить
Option Explicit
К началу кода, над
Sub Copy()
Это более правильный способ кодирования.
Я помню, как начинал свою кодировку в vba и проходил копирование ячеек с одного листа на другой. Я предлагаю вам начать смотреть на For-Next заявления, как это поможет, когда вы начинаете копировать большое количество данных, например:
Option Explicit
Sub Copy()
Dim intCounter as Integer 'intCounter is the variable when is denoted by a prefix 'int' and is a counter for the for statement
For intCounter=1 to Sheets(1).Cells(Rows.Count, 1).End(xlUp).Rows
'The above line denotes For the Counter = to 1 all the way to the end of the sheet
Sheets(1).Cells(intCounter,1).Value=Sheets(2).Cells(intCounter,1).Value
'The above will take the cell in Sheet 1 row intCounter Column 1 to Sheet 2 row intCounter Column 1
Next
'The Above line 'Next' will start the loop over, adding 1 to the Value of intCounter
End Sub
Я предлагаю вам поиграть с кодом и посмотреть, что изменение значения будут делать в суб рутина.
Также обратите внимание, что вышеуказанная подпрограмма зависит от наличия данных в Листе 1 и столбце 1 и только передача данных из 1 ячейки за раз, если вы хотите делать больше одной ячейки за раз, как указано выше вы можете использовать
Range(Cells(intCounter,1),Cells(intCounter,whateverColumnNumberYouWant)).Value
в месте
Cells(intCounter,1).Value
Хотелось бы надеяться, что это дает вам что-то, чтобы играть с, что поможет вашим усилиям
Я ничего не имею, это моя ель st VBA. Никогда не делал vba. – Josh