Vba: как установить значение ячейки на другом листе
Вы можете использовать следующие методы в VBA, чтобы установить значение ячейки на другом листе:
Способ 1. Установите значение ячейки на другом листе.
Sub SetCellAnotherSheet()
Sun wks1 As Worksheet, wks2 As Worksheet
'specify sheets to use
Set wks1 = Sheets(" Sheet1 ")
Set wks2 = Sheets(" Sheet2 ")
'set cell value in Sheet2 equal to cell value in Sheet1
wks2.Range(" A2 ").Value = wks1.Range(" A2 ").Value
End Sub
Этот конкретный макрос установит значение ячейки A2 в Sheet2 равным значению ячейки A2 в Sheet1 .
Способ 2: установка нескольких значений ячеек на другом листе
Sub SetCellAnotherSheet()
Sun wks1 As Worksheet, wks2 As Worksheet
'specify sheets to use
Set wks1 = Sheets(" Sheet1 ")
Set wks2 = Sheets(" Sheet2 ")
'set cell range in Sheet2 equal to cell range in Sheet1
wks2.Range(" A2:A11 ").Value = wks1.Range(" A2:A11 ").Value
End Sub
Этот конкретный макрос установит значение каждой ячейки в диапазоне A2:A11 на листе Sheet2 равным значению каждой ячейки в диапазоне A2:A11 на листе Sheet1 .
Следующие примеры показывают, как использовать каждый метод на практике.
Пример 1. Установка значения ячейки на другом листе
Предположим, у нас есть следующий лист под названием Sheet1 , который содержит названия разных баскетбольных команд:
Предположим, у нас есть Лист2 , который содержит только одну строку заголовка:
Мы можем создать следующий макрос, чтобы установить значение ячейки A2 листа Sheet2 равным значению ячейки A2 листа Sheet1 :
Sub SetCellAnotherSheet()
Sun wks1 As Worksheet, wks2 As Worksheet
'specify sheets to use
Set wks1 = Sheets(" Sheet1 ")
Set wks2 = Sheets(" Sheet2 ")
'set cell value in Sheet2 equal to cell value in Sheet1
wks2.Range(" A2 ").Value = wks1.Range(" A2 ").Value
End Sub
Когда мы запустим этот макрос, мы увидим, что для значения ячейки A2 на листе Sheet2 теперь установлено значение «Mavs», что соответствует значению ячейки A2 на листе Sheet1 :
Пример 2. Установка нескольких значений ячеек на другом листе
Предположим, мы хотим установить значение каждой ячейки в диапазоне A2:A11 на листе Sheet2 равным каждой ячейке в диапазоне A2:A11 на листе Sheet1 .
Для этого мы можем создать следующий макрос:
Sub SetCellAnotherSheet()
Sun wks1 As Worksheet, wks2 As Worksheet
'specify sheets to use
Set wks1 = Sheets(" Sheet1 ")
Set wks2 = Sheets(" Sheet2 ")
'set cell range in Sheet2 equal to cell range in Sheet1
wks2.Range(" A2:A11 ").Value = wks1.Range(" A2:A11 ").Value
End Sub
Когда мы запустим этот макрос, мы увидим, что значения в диапазоне A2:A11 листа Sheet2 теперь установлены такими же, как значения в диапазоне A2:A11 листа Sheet1 :
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как найти последнюю использованную строку
VBA: как подсчитать количество строк в диапазоне
VBA: как подсчитать количество используемых столбцов