У меня проблема в VBA. Я создал скрипт для суммирования каждой ежемесячной суммы (последней строки таблицы; необходимо добавить каждый третий столбец) к годовой сумме. Для этого я создаю строку с функцией sum в ней. Затем я хочу вставить строку в ячейку под ежемесячной таблицей.
Всякий раз, когда я нажимаю кнопку, выскакивает
ошибка 1004
. Я старался изо всех сил, чтобы решить это сам, но я не мог это исправить. Если я передаю строку в msgbox, она работает нормально, и на моем экране отображается символ = sum (...).
'Defintions
Dim lastCol As Long
Dim lastRow As Long
Dim i As Integer
Dim k As Integer
Dim x As Integer
Dim l As String
Dim Squantitys As String
Dim year As String
Dim startYear As Integer
Dim str As String
startYear = 8
'Get Dimensions of results
lastRow = Sheets("results").Cells(Rows.Count, 1).End(xlUp).Row
lastCol = Sheets("results").Cells(1, Columns.Count).End(xlToLeft).Column
'Get the new table ready
Sheets("results").Cells(lastRow + 7, 1).Value = "year"
Sheets("results").Cells(lastRow + 7, 2).Value = "total Quantitys"
'add total Quantitys
Squantitys = "=sum("
For i = 2 To lastCol Step 36
If (lastCol - i) >= 36 Then
For k = i To i + 33 Step 3
l = Split(Sheets("results").Cells(lastRow, k).Address, "$")(1)
Squantitys = Squantitys & l & lastRow & ";"
x = k + 3
Next
l = Split(Sheets("results").Cells(lastRow, x).Address, "$")(1)
Squantitys = Squantitys & l & lastRow & ")"
Else
For k = i To lastCol - 3 Step 3
l = Split(Sheets("results").Cells(lastRow, k).Address, "$")(1)
Squantitys = Squantitys & l & lastRow & ";"
x = k + 3
Next
l = Split(Sheets("results").Cells(lastRow, x).Address, "$")(1)
Squantitys = Squantitys & l & lastRow & ")"
End If
'output
year = Sheets("results").Cells(1, i).Value
Sheets("results").Cells(lastRow + startYear, 1).Value = year
'MsgBox Squantitys --- this works fine
Sheets("results").Cells(lastRow + startYear, 2).Value = Squantitys
'reset for next loop
startYear = startYear + 1
Squantitys = "=sum("
Next