Помогите пожалуйста с заданием+++
Подскажите пожалуйста, как написать команду макроса в VBA Excel?
Есть таблицы с цифровыми данными на Листе 1 и Листе 2
Нужно на Листе 3 заполнить столбец, в котором будут умножены данные столбца с Листа 1 на данные столбца Листа 2
Скажите пожалуйста , макрос это обязательное условие или вы услыхали новый слэнг и теперь щеголяет своими знаниями.
Перемножить 2 столбца на разных листах - обычная формула справится на ура
Sub MultiplyColumns()
Dim lastRow1 As Long, lastRow2 As Long, lastRow3 As Long
Dim i As Long
' Находим последнюю заполненную строку на Листе 1
With Worksheets("Лист1")
lastRow1 = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
' Находим последнюю заполненную строку на Листе 2
With Worksheets("Лист2")
lastRow2 = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
' Находим максимальное количество строк из двух листов
lastRow3 = WorksheetFunction.Max(lastRow1, lastRow2)
' Перемножаем значения столбцов A на Листах 1 и 2 и записываем результат в столбец A на Листе 3
With Worksheets("Лист3")
For i = 1 To lastRow3
.Cells(i, "A").Value = Worksheets("Лист1").Cells(i, "A").Value * Worksheets("Лист2").Cells(i, "A").Value
Next i
End With
End Sub
Пояснение
Объявляем переменные lastRow1, lastRow2 и lastRow3 для хранения индексов последних заполненных строк на Листах 1, 2 и 3 соответственно. Также объявляем переменную i для использования в цикле.
Находим последнюю заполненную строку на Листе 1 с помощью метода End(xlUp) и записываем ее индекс в lastRow1.
Находим последнюю заполненную строку на Листе 2 аналогичным образом и записываем ее индекс в lastRow2.
Определяем максимальное количество строк из двух листов с помощью функции WorksheetFunction.Max и записываем его в lastRow3.
Переходим на Лист 3 и в цикле от 1 до lastRow3 перемножаем значения ячеек столбца A на Листах 1 и 2, записывая результат в столбец A на Листе 3.