2016-11-04 3 views
0

Мне нужно вставить формулу массива в несколько ячеек в первый раунд, а затем суммировать ячейки в диапазоне. Тем не менее, диапазон не всегда один и тот же, и, следовательно, мне придется тянуть номера строк, определяющих диапазон от переменных. Это не похоже на работу:Вставка формулы массива для суммирования диапазонов ячеек с переменными строками в excel vba

Set ssheet = ThisWorkbook.Sheets("1 to 50")  
With ssheet.Range(Cells(1, 8), Cells(3200, 8)) 
Set x = .Find("Rate", LookIn:=xlValues, Lookat:=xlWhole) 
tworow = x.Row 
Set y = .Find("Total=", LookIn:=xlValues, Lookat:=xlWhole) 
nextrow = y.Row 
End With 
l = tworow + 1 
m = nextrow - 1 
ssheet.Cells(nextrow, 9).FormulaArray = "=sum(round("I" & l & ":" & "I" &m,2))" 
End sub 

можно выбрать нужный диапазон с помощью этого:

myrange = "I" & l & ":" & "I" & m 
Range(myrange).Select 

Но код для формулы суммы выдает «ожидаемый конец заявление». Пожалуйста помоги.

+0

Что мне в основном нужно, так это использование переменных для номеров строк в коде ArrayFormula. – Swopnil

+0

попробуйте заменить «charatcers» на биты внутри раунда: '' = sum (round ('I' & l & ':' & 'I' & m, 2)) "' – maxhob17

+0

@dani это формула массива с он округляет значения в каждой из ячеек диапазона и только после этого суммирует их. Эквивалент CSE в excel – Swopnil

ответ

0

Вам нужно разобраться, как ваша строка была составлена, то есть что должно буквально появляться. Попробуйте это

ssheet.Cells(nextrow, 9).FormulaArray = "=sum(round(I" & l & ":I" & m & ",2))" 
+0

спасибо @SJR, это сработало. – Swopnil

Смежные вопросы