#excel #vba
#excel #vba
Вопрос:
Я получаю синтаксическую ошибку в строке
Range("E4:E" amp; ColALastRow) =Application.WorksheetFunction.Product=(Range("A4:A" amp; ColALastRow), Range("D4:D" amp; LastRowOfD))
Col A и Col D имеют значения. Я хочу умножить их вместе на col E. Ниже приведен мой код на данный момент.
Dim rngData As Range
Dim ColALastRow As Long, LastRowOfD As Long
ColALastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set rngData = ActiveSheet.Range("A4:A" amp; ColALastRow)
LastRowOfD = Cells(Rows.Count, "D").End(xlUp).Row
Range("E4:E" amp; ColALastRow) =Application.WorksheetFunction.Product=(Range("A4:A" amp; ColALastRow), Range("D4:D" amp; LastRowOfD))
Комментарии:
1. не будет ли последняя заполненная ячейка одинаковой для обоих столбцов?
2. Я не понимаю, что вы имеете в виду
3. Все задействованные диапазоны должны иметь одинаковый размер, то есть одинаковое количество ячеек. Убедитесь, что это произойдет
4.
PRODUCT()
это так не работает. В результате будет получена сумма умножения всех значений. Итак, только одно значение, которое вы сейчас пытаетесь скопировать в несколько ячеек в столбце E. При этом у вас также есть синтаксическая ошибка, так как вы не хотите, чтобы это второе «=».5. Если только у A на единицу больше, чем у D , или у D на единицу больше, чем у A…
Ответ №1:
Вы можете упростить свой подход, как показано ниже, и получить желаемые результаты.
Sub ProductofTwoCol()
With Range("E1:E" amp; Cells(Rows.Count, "A").End(xlUp).Row)
.Formula = "=A1*D1"
.Value = .Value
End With
End Sub
Комментарии:
1. что означает .value = .value ?
2. @Chewjunnie Он удаляет формулу и оставляет ячейку с вычисленным значением.
3. Понял! Спасибо!
4. подождите, почему это вдруг перестало работать? Это фактически делит
5. @Chewjunnie это работает для меня так, как должно. Если это проблема, связанная с конкретным языком, то я не уверен в этом. Тем не менее, вы можете пошагово выполнить код с помощью
F8
ключа и проверить промежуточные результаты шага.