Моё почтение, джентльмены!
Инструмент для вставки данных на лист Excel без преобразования.
т.е. "1" так и вставится как текст, а не как число.
Не нужен апостроф, не нужен формат ячейки.
Нужна надстройка
Так же быстро заполняет диапазон одним значением.
Использована функция
Функция/Метод XLLcmdE12xlSet(XCHAR * param, LPXLOPER12 param2, LPXLOPER12 pxReference, LPXLOPER12 pxValue)
param - командная строка XLL API - см. "XLL API":
1й параметр - Режим диалога для комманд меню XLL - см. "Диалог"
param2 – зарезервирован
pxReference - Прямоугольная ссылка (адрес), описывающая целевую ячейку или ячейки. Адрес должен описывать смежные ячейки.
pxValue - Значение или значения, помещаемые в ячейку или ячейки.
Аргумент pxValue
pxValue может быть значением или массивом. Если это значение, этим значением заполняется весь диапазон назначения. Если это массив, элементы массива помещаются в соответствующие расположения в прямоугольнике.
Если для четвертого аргумента используется горизонтальный массив, он дублируется вниз, чтобы заполнить весь прямоугольник. Если используется вертикальный массив, он дублируется вправо для заполнения всего прямоугольника. Если вы используете прямоугольный массив, и он слишком мал для прямоугольного диапазона, в который вы хотите его поместить, этот диапазон заполняется исходными данными размером с массив, а остальной диапазон заполняется #Н/Д.
Если целевой диапазон меньше исходного массива, значения копируются до пределов целевого диапазона, а лишние данные из массива игнорируются.
Чтобы очистить элемент прямоугольника назначения, используйте элемент массива типа Empty в исходном массиве.
Чтобы очистить весь прямоугольник назначения, опустите четвертый аргумент.
Ограничения
Невозможно отменить xlSet . Кроме того, он удаляет все сведения об отмене, которые могли быть доступны ранее.
XlSet может помещать в ячейки только константы, а не формулы. Максимальная длина помещаемой строки 8190 символов.
Возвращает код ошибки: 0 - команда выполнена успешно и Error 2036, #NUM!, #ЧИСЛО! - если ошибка.
Пример использования:
Инструмент для вставки данных на лист Excel без преобразования.
т.е. "1" так и вставится как текст, а не как число.
Не нужен апостроф, не нужен формат ячейки.
Нужна надстройка
Так же быстро заполняет диапазон одним значением.
Использована функция
Функция/Метод XLLcmdE12xlSet(XCHAR * param, LPXLOPER12 param2, LPXLOPER12 pxReference, LPXLOPER12 pxValue)
param - командная строка XLL API - см. "XLL API":
1й параметр - Режим диалога для комманд меню XLL - см. "Диалог"
param2 – зарезервирован
pxReference - Прямоугольная ссылка (адрес), описывающая целевую ячейку или ячейки. Адрес должен описывать смежные ячейки.
pxValue - Значение или значения, помещаемые в ячейку или ячейки.
Аргумент pxValue
pxValue может быть значением или массивом. Если это значение, этим значением заполняется весь диапазон назначения. Если это массив, элементы массива помещаются в соответствующие расположения в прямоугольнике.
Если для четвертого аргумента используется горизонтальный массив, он дублируется вниз, чтобы заполнить весь прямоугольник. Если используется вертикальный массив, он дублируется вправо для заполнения всего прямоугольника. Если вы используете прямоугольный массив, и он слишком мал для прямоугольного диапазона, в который вы хотите его поместить, этот диапазон заполняется исходными данными размером с массив, а остальной диапазон заполняется #Н/Д.
Если целевой диапазон меньше исходного массива, значения копируются до пределов целевого диапазона, а лишние данные из массива игнорируются.
Чтобы очистить элемент прямоугольника назначения, используйте элемент массива типа Empty в исходном массиве.
Чтобы очистить весь прямоугольник назначения, опустите четвертый аргумент.
Ограничения
Невозможно отменить xlSet . Кроме того, он удаляет все сведения об отмене, которые могли быть доступны ранее.
XlSet может помещать в ячейки только константы, а не формулы. Максимальная длина помещаемой строки 8190 символов.
Возвращает код ошибки: 0 - команда выполнена успешно и Error 2036, #NUM!, #ЧИСЛО! - если ошибка.
Пример использования:
| Код |
|---|
Option Explicit
Sub TestXLLcmdE12xlSet()
Dim i, testSize As Long: testSize = 2
Dim arrOrValue: ReDim arrOrValue(1 To testSize, 1 To 1)
For i = 1 To testSize
arrOrValue(i, 1) = Str(i) 'MAX количество символов для ячейки: 8190
Next
'Варианты использования:
'1.Выводим массив или значение по указанному диапазону на лист Excel
Debug.Print Application.RUN("XLLcmdE12xlSet", "", 0, Range("a1:a2").Address, arrOrValue)
'2. Помещаем в диапазон значение "1"
Debug.Print Application.RUN("XLLcmdE12xlSet", "", 0, Range("b1:b2").Address, "1")
'3. Выводим массив по указанному диапазону на лист Excel, первый элемент = Empty
arrOrValue(1, 1) = Empty 'первый элемент Empty
Debug.Print Application.RUN("XLLcmdE12xlSet", "", 0, Range("c1:c2").Address, arrOrValue)
'4 Очищаем заданный диапазон от данных
[d1:d5] = 2 'заполняем данными (2) диапазон для теста
Debug.Print Application.RUN("XLLcmdE12xlSet", "", 0, Range("d1:d2").Address) ' очищаем в заданном диапазоне
End Sub |
Изменено: - 18.04.2024 11:31:00
«Бритва Оккама» или «Принцип Калашникова»?