Преобразование чисел столбцов Excel в алфавитные символы
Введение
В этой статье описывается использование функции Microsoft Visual Basic для приложений (VBA) в Microsoft Excel для преобразования чисел столбцов в соответствующий алфавитный указатель символов для одного столбца.
Например, столбец номер 30 преобразуется в эквивалентные алфавитные символы "AD".
Дополнительная информация
Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Специалисты технической поддержки Майкрософт могут пояснить работу той или иной процедуры, но модификация примеров и их адаптация к задачам разработчика не предусмотрена.
Функция ConvertToLetter работает с использованием следующего алгоритма:
- Пусть
iCol
будет номером столбца. Остановить, еслиiCol
значение меньше 1. - Вычислите коэффициент и остаток при делении
(iCol - 1)
на 26 и сохраните в переменныхa
иb
. - Преобразуйте целочисленное значение в соответствующий
b
алфавитный символ (0 => A, 25 => Z) и введите его в начало строки результата. - Задайте
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
Примечание Эта функция преобразует только переданные ей целые числа в эквивалентный буквенно-цифровой символ текста. Он не изменяет внешний вид столбца или заголовков строк на физическом листе.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по