#arrays #vba
#массивы #vba
Вопрос:
Я изучаю VBA в школе и испытываю проблемы с некоторыми основами.
Я заполнил ячейки с A1 по D1 случайными целыми числами.
Я хочу суммировать их и поместить решение в E1.
Sub Add_Four_Numbers()
Dim CBArray(3) As Double
For i = 1 To 4
Cells(i, 4) = gerry(Cells(i, 1), Cells(i, 2), Cells(i, 3), Cells(i, 4))
Next i
End Function
Я продолжаю получать:
Ошибка компиляции. Неправильное количество переменных
Я безуспешно пытался исправить размерность массива.
Может кто-нибудь посоветовать?
Спасибо.
Комментарии:
1. Я продолжаю получать это сообщение: ошибка компиляции. Неправильное количество переменных
2. Вы проверили метод
gerry
? Сколько параметров требуется?3. @CactusBlanket что такое
gerry
? это уFunction
вас есть? если это так, то поделитесь соответствующим кодом
Ответ №1:
Не уверен, каким было школьное задание, но есть несколько способов суммировать значения в ячейках A1-D1 и получить результат в ячейке E1.
В приведенном ниже коде есть 3 способа их суммирования.
(не уверен, почему вы используете массив, это было частью назначения?)
Option Explicit
Sub Add_Four_Numbers()
Dim Sht As Worksheet
Dim i As Long
' always set your cells to a sheet varibale >> modify "Sheet1" to your Sheet's name
Set Sht = ThisWorkbook.Sheets("Sheet1")
' option 1: using WorksheetFunction SUM and your pre-defined Range
With Sht
.Range("E1").Value = WorksheetFunction.Sum(.Range("A1:D1"))
End With
' option 2: using WorksheetFunction SUM and Cells reference inside
With Sht
.Range("E1").Value = WorksheetFunction.Sum(.Cells(1, 1), .Cells(1, 2), .Cells(1, 3), .Cells(1, 4))
End With
' option 3: using a For loop
With Sht
.Range("E1").Value = 0
For i = 1 To 4
.Range("E1").Value = .Range("E1").Value .Cells(1, i)
Next i
End With
End Sub