Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Запись значений диапазона в обычную переменную

    Запись значений диапазона ячеек на листе книги Excel в обычную строковую переменную с сохранением структуры с помощью кода VBA.

    Введение

    В этой статье рассмотрим, как записать значения из диапазона ячеек Excel в обычную строковую переменную для последующего вывода с помощью метода Debug.Print. Для оптимизации работы с данными будем использовать массив, так как циклы по элементам массива выполняются быстрее, чем по ячейкам диапазона.

    Пример кода

    Ниже приведен пример макроса VBA Excel, который считывает значения из заданного диапазона ячеек, сохраняет их в массив, а затем формирует строковую переменную для вывода данных построчно с разделением элементов в строке точкой с запятой и пробелом.

    Как это работает

    1. Объявление переменных:
      • rng — объект типа Range для работы с диапазоном ячеек.
      • r и c — переменные для хранения количества строк и столбцов диапазона.
      • ar — массив, в который записываются значения диапазона.
      • i1 и i2 — счетчики для циклов по строкам и столбцам.
      • txt — строковая переменная для накопления результата.
    2. Получение данных:
      • Диапазон A1:F40 на листе «Лист4» задается с помощью Set rng.
      • Свойства .Rows.Count и .Columns.Count определяют размеры диапазона.
      • Метод .Value копирует значения диапазона в массив ar.
    3. Формирование строки:
      • Внешний цикл For i1 перебирает строки массива.
      • Внутренний цикл For i2 перебирает столбцы.
      • Значения из массива добавляются в переменную txt.
      • Если текущий элемент — последний в строке (i2 = c), добавляется перенос строки (vbNewLine).
      • В противном случае добавляется разделитель "; ".
    4. Вывод результата:
      • Метод Debug.Print выводит содержимое переменной txt в окно Immediate (доступно в VBA-редакторе через сочетание клавиш Ctrl+G).

    Результат работы кода

    При выполнении макроса данные из диапазона будут выведены построчно, повторяя структуру исходного диапазона. Элементы в каждой строке разделяются символами "; ". Например, для диапазона с числами:

    1 2 3
    4 5 6

    вывод в окне Immediate будет выглядеть так:

    Данный код VBA Excel используется для проверки работы выбора диапазона из таблицы.

    Преимущества подхода

    • Скорость: использование массива (ar) вместо прямого обращения к ячейкам диапазона значительно ускоряет обработку данных.
    • Гибкость: код легко адаптировать для других разделителей или форматов вывода.
    • Простота: полученная строка может использоваться не только для Debug.Print, но и для записи в файл, ячейку или другое место.

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


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.