Преобразование чисел столбцов Excel в алфавитные символы

Введение

В этой статье описывается использование функции Microsoft Visual Basic для приложений (VBA) в Microsoft Excel для преобразования чисел столбцов в соответствующий алфавитный указатель символов для одного столбца.

Например, столбец номер 30 преобразуется в эквивалентные алфавитные символы "AD".

Дополнительная информация

Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Специалисты технической поддержки Майкрософт могут пояснить работу той или иной процедуры, но модификация примеров и их адаптация к задачам разработчика не предусмотрена.

Функция ConvertToLetter работает с использованием следующего алгоритма:

  1. Пусть iCol будет номером столбца. Остановить, если iCol значение меньше 1.
  2. Вычислите коэффициент и остаток при делении (iCol - 1) на 26 и сохраните в переменных a и b.
  3. Преобразуйте целочисленное значение в соответствующий b алфавитный символ (0 => A, 25 => Z) и введите его в начало строки результата.
  4. Задайте iCol для разделителя a и цикла.

Например: номер столбца — 30.

  • (Цикл 1, шаг 1) Номер столбца не менее 1, продолжайте.

  • (Цикл 1, шаг 2) Число столбца меньше одного делится на 26:

    29 / 26 = 1 оставшаяся часть 3. a = 1, b = 3

  • (Цикл 1, шаг 3) Наведите указатель на (b+1) букву алфавита:

    3 + 1 = 4, четвертая буква — "D". Result = "D"

  • (Цикл 1, шаг 4) Назад к шагу 1 с помощьюiCol = a

    iCol = 1

  • (Цикл 2, шаг 1) Номер столбца не менее 1, продолжайте.

  • (Цикл 2, шаг 2) Число столбца меньше одного делится на 26:

    0 / 26 = 0 оставшихся 0. a = 0, b = 0

  • (Цикл 2, шаг 3) Наведите указатель на b+1 букву алфавита:

    0 + 1 = 1, первая буква — "A" Result = "AD"

  • (Цикл 2, шаг 4) Назад к шагу 1 с помощьюiCol = a

    iCol = 0

  • (Цикл 3, шаг 1) Номер столбца меньше 1, stop.

Следующая функция VBA — это лишь один из способов преобразования значений чисел столбца в их эквивалентные алфавитные символы:

Function ConvertToLetter(iCol As Long) As String
   Dim a As Long
   Dim b As Long
   a = iCol
   ConvertToLetter = ""
   Do While iCol > 0
      a = Int((iCol - 1) / 26)
      b = (iCol - 1) Mod 26
      ConvertToLetter = Chr(b + 65) & ConvertToLetter
      iCol = a
   Loop
End Function

Примечание Эта функция преобразует только переданные ей целые числа в эквивалентный буквенно-цифровой символ текста. Он не изменяет внешний вид столбца или заголовков строк на физическом листе.