Перевод буквенных имен колонок в их фактические номера

Автор Alex16, 17 ноября 2016, 10:44

0 Пользователи и 1 гость просматривают эту тему.

Alex16

Доброе время суток! Подскажите пожалуйста, а нет ли в LiO basic стандартных функций перевода буквенных значений в номера колонок
т.е. что-то вроде N = StrToColumn("A") "вернет N=0" или N = StrToColumn("AQ") "вернет N=42"
Или самому мудрить? Если бы не двойные буквы, можно было бы с CHR() покрутить, а тут как-то всё усложняется :(

rami

А зачем мудрить? Можно пользоваться и буквами и цифрами для адресации столбцов.

Номер столбца AQ:
Sub Main
oCell=ThisComponent.Sheets(0).getCellRangeByName("AQ1")
nColumn=oCell.CellAddress.Column
End Sub

Alex16

Спасибо. А наоборот как сделать?
Lett = ColToStr(42) получить AQ

JohnSUN

Цитата: Alex16 от 17 ноября 2016, 07:44Если бы не двойные буквы, можно было бы с CHR() покрутить, а тут как-то всё усложняется
Верной дорогой идёте, товарищ! Просто по стопам великих предшественников
Сам Питоньяк в  главе 6.6. Human readable address of cell признается: "Я создал следующую функцию, прежде чем я знал о CellAddressConversion..." и дальше идет листинг 6.16: Cell address in a readable form, действительно сделано через Chr(65 +  the_column MOD 26)
Правда перед этим он честно рассказал про этот CellAddressConversion, буквально в четыре строки расписал в листинге 6.15: Cell address in a readable form using CellAddressConversion
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне