Формула Excel VBA с динамическим именем таблицы

#excel-formula

#excel-формула

Вопрос:

У меня есть проблема с написанием формулы в VBA

формула в Excel очень проста, если тест на слово появляется в строке одной из моих 4 таблиц, то дайте мне сумму столбца 4 :

 =SUMIF(Table1[Column1]:Table4[Column1],"Test",Table1[Column4]:Table4[Column4])  

В VBA это было бы (и это работает) :

 ws.Range("B1").Formula ="=SUMIF(Table1[Column1]:Table4[Column1],""Test"",Table1[Column4]:Table4[Column4])"  

Моя проблема в том, что у меня динамическое количество таблиц, поэтому моя самая большая таблица — «Таблица» и я

Я действительно не знаю, как написать формулу в VBA, у меня всегда есть ошибка:

 ws.Range("B1").Formula ="=SUMIF(Table1[Column1]:""Table"" amp; i amp;""[Column1]"",""Test"",Table1[Column4]:""Table"" amp; i amp;""[Column4]"")"  

Каков наилучший способ достичь этого?

 Sub Formula()  Dim ws As Worksheet Dim i As Integer  Set ws = Worksheets(1)  i = ws.Range("A1")  If i = 1 Then  ws.Range("B1").Formula = "=SUMIF(Table1[Column1]:Table1[Column1],""Test"",Table1[Column3]:Table1[Column3])"  End If  If i = 2 Then  ws.Range("B1").Formula = "=SUMIF(Table1[Column1]:Table2[Column1],""Test"",Table1[Column3]:Table[Column3])"  End If  If i = 3 Then  ws.Range("B1").Formula = "=SUMIF(Table1[Column1]:Table3[Column1],""Test"",Table1[Column3]:Table3[Column3])"  End If  If i = 4 Then  ws.Range("B1").Formula = "=SUMIF(Table1[Column1]:Table4[Column1],""Test"",Table1[Column3]:Table4[Column3])"  'What I would like :  'ws.Range("B1").Formula = "=SUMIF(Table1[Column1]:Table" amp; i amp; "[Column1],""Test"",Table1[Column4]:Table" amp; i amp; "[Column4])"  End If  End Sub  

Большое спасибо

Комментарии:

1. ws.Range("A1").Formula ="=SUMIF(Table1[Column1]:Table" amp; i amp; "[Column1],""Test"",Table1[Column4]:Table" amp; i amp; "[Column4])"

2. Это тоже не работает, я забыл сказать, что мое имя таблицы больше похоже на : Таблица» amp; i amp; «_client

3. Почему бы вам не показать нам точную формулу Excel и не сказать, что именно нужно изменить? Если это будет использоваться в цикле, то, по крайней мере, покажите нам полный код «цикла».

4. Нет, это не в цикле, мои таблицы находятся друг под другом. Объем таблицы варьируется. Под последними таблицами у меня есть формулы для вычисления сумм, и если в таблице нет нужного количества, у меня есть #REF! ошибка. Таким образом, формула должна быть написана с использованием VBA сразу после создания таблицы. В моем очень простом примере формула не работает. Это также может быть такая формула : =СУММА(Таблица 1[[#Итоги],[Сумма]],Таблица 2[[#Итоги],[Сумма]]) Просто вместо таблицы 2 ему понадобится таблица i, где i находится в A1