Top.Mail.Ru
Ответы

Помогите пожалуйста с заданием+++

Подскажите пожалуйста, как написать команду макроса в VBA Excel?
Есть таблицы с цифровыми данными на Листе 1 и Листе 2
Нужно на Листе 3 заполнить столбец, в котором будут умножены данные столбца с Листа 1 на данные столбца Листа 2

По дате
По рейтингу
Аватар пользователя
Новичок

Скажите пожалуйста , макрос это обязательное условие или вы услыхали новый слэнг и теперь щеголяет своими знаниями.
Перемножить 2 столбца на разных листах - обычная формула справится на ура

Аватар пользователя
Просветленный
12345678910111213141516171819202122232425
 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 

Пояснение

  1. Объявляем переменные lastRow1, lastRow2 и lastRow3 для хранения индексов последних заполненных строк на Листах 1, 2 и 3 соответственно. Также объявляем переменную i для использования в цикле.

  2. Находим последнюю заполненную строку на Листе 1 с помощью метода End(xlUp) и записываем ее индекс в lastRow1.

  3. Находим последнюю заполненную строку на Листе 2 аналогичным образом и записываем ее индекс в lastRow2.

  4. Определяем максимальное количество строк из двух листов с помощью функции WorksheetFunction.Max и записываем его в lastRow3.

  5. Переходим на Лист 3 и в цикле от 1 до lastRow3 перемножаем значения ячеек столбца A на Листах 1 и 2, записывая результат в столбец A на Листе 3.