Фон: Я создал шаблон Word, содержащий процедуру, которая создает массив, который содержит заголовок проекта в первом измерении и название цели во втором измерении. Этот массив переносится в таблицу в Excel, которая будет использоваться при создании графика временной шкалы/gantt.Excel Listobject Таблица Вставка строк вызывает ошибку формулы ячейки
Задача: Перестановка помещает информацию о массиве соответствующим образом в таблицу Excel и расширяет размер этой таблицы по желанию. Cell B5 - это начало DataBodyRange и начало того, где я хочу вставить информацию о массиве.
' paste headings from array into excel
xlWS.Range("B5:C" & UBound(gHeadings, 2)) = xlApp.Transpose(gHeadings)
То, что не происходит должным образом, находится в последующих ячейках данных внутри таблицы. Линия времени клетка имеет следующую формулу:
=IF(AND(COLUMNS($H$5:H10)>=$E5,COLUMNS($H$5:H10)<=$F5),IF(COLUMNS($H$5:H10)-$E5<ROUND(($F5-$E5+1)*$G5,0),fillblock,""),"")
Когда транспонирование покрытие, ряд ячеек, содержащие ошибки, на которые ссылаются формула на строке таблицы, которая была оригинальной последней строкой DataBodyRange. В этой строке, строка 10, формула получает изменилось от того, что отображается выше:
=IF(AND(COLUMNS($H$5:H119)>=$E10,COLUMNS($H$5:H119)<=$F10),IF(COLUMNS($H$5:H119)-$E10<ROUND(($F10-$E10+1)*$G10,0),fillblock,""),"")
Любые мысли или понимания того, почему это происходит, и как это предотвратить?
Точная проблема немного неясна. Является ли формула меняющейся единственной проблемой? Если нет, пожалуйста, уточните. Что касается формулы, вы не можете добавить '$' перед частями, которые вы не хотите менять? (Например, вы не хотите, чтобы H10 изменился на H119, поэтому измените его на $ H $ 10). Если это не вариант, можете ли вы предоставить полные процедуры, которые ваш код выполняет с массивом и даже пример некоторых данных массива ? –
Приношу извинения за любую путаницу. Позвольте мне попытаться разъяснить. Транспонирование массива в таблицу будет автоматически вставлять строки в таблицу. Эта часть кода, показанная выше, работает по назначению. Проблема заключается в следующем: шаблон уже имеет формулу ячейки в ячейках, начинающихся с столбца H. Когда новые строки вставляются в таблицу с транспозицией, эта формула должна копироваться во все новые строки. Это происходит со всеми строками вставки, за исключением указанной строки. По какой-то причине Excel изменил ссылку на эту строку, чтобы указать на последнюю строку таблицы –