Добавление новой строки в таблицу с использованием массива - вопрос о формуле - PullRequest
0 голосов
/ 01 ноября 2019

Мне нравится использовать следующий метод для вставки данных в новую строку таблицы:

  ' (...)
  ' prepare table row
    Dim newRowArr(1 To 3) As Variant
            newRowArr(1) = 1 ' sample data
            newRowArr(2) = 2
            newRowArr(3) = 3
  ' inserting row
    Dim newRow As ListRow
        Set newRow = sampleTbl.ListRows.Add
            newRow.Range.Value = newRowArr

Если у меня есть таблица с 4 столбцами и первые три столбца содержат данные, а последний столбец содержит формулу: Есть ли способ скопировать формулу автоматически, или я должен написать формулу "вручную" в строке Range или массиве?

Я могу сделать это с помощью .Formula или .FormulaR1C1, но я неконечно, если это абсолютно необходимо. Когда я пропускаю newRowArr (4), то в 4-м столбце я получаю # N / A в столбце вместо автоматического копирования формулы. Может быть, лучше использовать .Offset, чтобы скопировать формулу, не переписывая ее, но я ищу наиболее эффективный и «элегантный» способ сделать это. Заранее спасибо

1 Ответ

2 голосов
/ 01 ноября 2019

Не писать во всю строку.

newRow.Range(1).Resize(, 3).Value = newRowArr
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...