Массив: ошибка компиляции. Неправильное количество переменных

#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