Смоделируйте действие вставки в Excel, используя VBA - PullRequest
0 голосов
/ 03 сентября 2010

Я пытаюсь заполнить таблицу Excel с помощью VBA (на самом деле это нечто другое, если использовать COM-сервер, но с тем же синтаксисом). Это сгенерированный отчет, который я хочу написать в Excel для форматирования и презентации. Экспорт CSV и другие методы находятся вне уравнения из-за вовлеченной технологии.

Итак, я могу сделать это, записав каждое значение в каждую ячейку, но это мучительно медленно, поэтому я решил, что могу написать сразу несколько значений (скажем, 250 записей каждый раз). Поэтому я сохраняю эти значения, разделенные возвратом каретки, и если я копирую / вставляю это с использованием VBA, это прекрасно работает.

Проблема в том, что я не могу использовать буфер обмена (так как отчет выполняется много раз одновременно), поэтому я могу имитировать действие вставки (или какое-либо другое подобное) из списка значений в Excel без использования буфера обмена?

Спасибо

Ответы [ 2 ]

1 голос
/ 03 сентября 2010

Вы можете создать массив Variant s и назначить его диапазону:

  Dim v() As Variant

  ReDim v(1 To 20, 1 To 10)
  'Fill v
  v(5, 5) = 42
  '...

  Range("a1:j20").Value = v
1 голос
/ 03 сентября 2010

Самый быстрый способ скопировать значения в VBA, который я знаю, это

Range("destrange") = Range("srcrange")

destrange и srcrange должны быть одинакового размера. Также не будут скопированы данные форматирования и т. Д.

edit: вот что может быть полезным .

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