проблема с формулой суммы, добавленной VBA в первую строку listobject - PullRequest
0 голосов
/ 29 мая 2020

У меня есть рабочая тетрадь, которая будет использоваться для отслеживания еженедельной посещаемости клиентов моей программы. Каждую неделю я составляю таблицу на основе самого последнего списка наших клиентов. Он создает несколько строк для каждого клиента на основе различных контрактов, по которым они находятся. В первой строке я хочу суммировать оплачиваемые часы за каждый день, когда клиент получал услуги. Я использую следующий код, чтобы добавить формулу в правильный столбец и получить сумму правильных соответствующих столбцов.

currentnewrow = tblmytable.databodyrange.rows.count
rowrange.tblmytable.listrows(currentnewrow).range.row
fistcolumn = tblmytable.listcolumns("Monday").range.column - tblmytable.listcolumns(1).range.column + 1
secondcolumn = tblmytable.listcolumns("Friday").range.column - tblmytable.listcolumns(1).range.column + 1


tblmytable.listcolumns("Total").databodyrange(currentnewrow).formula = "sum=(" &  ws.range(ws.cells(rowrange, firstcolumnrange), ws.cells(rowrange, secondcolumnrnage)).address(false,false) & ")"

В этом коде эта формула будет вводиться правильно каждый раз, ЗА ИСКЛЮЧЕНИЕМ в первый раз. По какой-то причине каждый раз, когда tblmytable.listrows.add выполняется позже в коде, вторая половина диапазона будет обновляться до последней строки таблицы.

Я использовал:

tblmytable.Application.AutoCorrect.AutoFillFormulasInLists = False 

в самом начале кода, но первая формула продолжает меняться. Это также делается только в первый раз, когда формула вводится, беря сумму диапазона от первой строки и столбца с понедельника до последней строки и столбца в пятницу. Каждый раз, когда вводится формула, она правильно суммирует столбец с понедельника по столбец с пятницы, только для строки, в которой находится формула.

Кто-нибудь знает, почему это все еще происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...