Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/153: Рейтинг темы: голосов - 153, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 16.09.2010
Сообщений: 9
Excel

Получение номера выделенной колонки

21.03.2011, 13:50. Показов 32076. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как получить номер выделенной колонки, т.е. выделил колону 'С', а он мне выдал, колонка '3', а не 'C:C'
Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.03.2011, 13:50
Ответы с готовыми решениями:

Получение массива адресов ячеек в выделенной строке
Всем привет! Подскажите, пожалуйста, возможное решение. Задача: есть выделенная строка, необходимо после каждых двух столбцов в ней...

Получение адреса первой строки выделенной области в excel
Доброго времени суток! Подскажите как получить адрес первой строки выделенного массива строк в excel Задача: Есть таблица, в шапке...

Узнать номер выделенной колонки
Здравствуйте, интересует такой вопрос: как можно узнать номер выделенной колонки в табличном поле. Задача вообще такая стоит: имеется...

11
 Аватар для palva
4274 / 2967 / 692
Регистрация: 08.06.2007
Сообщений: 9,917
Записей в блоге: 4
21.03.2011, 14:03
Selection.Column возвращает номер самой левой колонки выделения. Если выделение состоит из нескольких областей, то возвращается информация о первой выделенной области.
0
22 / 5 / 1
Регистрация: 05.09.2010
Сообщений: 370
21.03.2011, 14:38
В некоторых случаях (н/р для сборки формул) необходимо знать буквенный эквивалент номера. Я написал функцию, ее иногда и использую. (Наверно есть и другие решения)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function НомерКолонкиСимволами(N)
  If N > 0 And N < 27 Then
    НомерКолонкиСимволами = Chr(N + 64)
    Exit Function
  End If
  x = Fix(N / 26)
  t = N - x * 26
  If t = 0 Then
    t = 26
    x = x - 1
  End If
  НомерКолонкиСимволами = Chr(x + 64)
  НомерКолонкиСимволами = НомерКолонкиСимволами & Chr(t + 64)
End Function
0
0 / 0 / 0
Регистрация: 19.12.2010
Сообщений: 7
21.03.2011, 16:08
Мне кажется так проще :-)

Visual Basic
1
2
    n = Selection.Column()
    MsgBox n
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
21.03.2011, 16:16
В некоторых случаях, даже при вводе формул(функций) можно использовать номер столбца, например :

Использование WorksheetFunction :

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
iCellsOne = Cells(1, 1).Address
iCellsTwo = Cells(5, 1).Address
xRange = Range(iCellsOne & ':' & iCellsTwo)
iWFS = Application.Sum(xRange)
 
'или так :
 
iWFS = Application.Sum(Range(Cells(1, 1).Address & ':' & Cells(5, 1).Address))
 
'Ввод формулы/функции :
 
iCellsOne = Cells(1, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
iCellsTwo = Cells(5, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
 
Cells(6, 1).Value = '=SUM(' & iCellsOne & ':' & iCellsTwo & ')'
Cells(6, 1).Formula = '=SUM(' & iCellsOne & ':' & iCellsTwo & ')'
Cells(6, 1).FormulaLocal = '=СУММ(' & iCellsOne & ':' & iCellsTwo & ')'
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
21.03.2011, 20:42
Для получения буквенного обозначения столбца, можно использовать ActiveCell (более подробно можно прочитать в самом первом ответе)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
'Вариант I(a).
 
iClmn = ActiveCell.Column
iAdr = ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute:=False)
 
If iClmn > 26 Then
   iClmNa = Left(iAdr, 2)
Else
   iClmNa = Left(iAdr, 1)
End If
 
'Вариант I(b).
 
iClmn = ActiveCell.Column
iAdr = ActiveCell.Address
 
If iClmn > 26 Then
   iClmNa = Mid(iAdr, 2, 2)
Else
   iClmNa = Mid(iAdr, 2, 1)
End If
To Laidi
Нет не проще, так как несмотря на постановку вопроса, автору как раз и НЕ НУЖЕН номер столбца ... прочитайте более внимательно сам вопрос, а не его заголовок
0
0 / 0 / 0
Регистрация: 16.09.2010
Сообщений: 9
22.03.2011, 10:30  [ТС]
всем спасибо
0
4 / 4 / 2
Регистрация: 06.03.2011
Сообщений: 151
22.03.2011, 12:04
Проверенный преобразователь номера столбца в его текстовое обозначение:

Visual Basic
1
2
3
4
5
If NomerStolbca < 27 Then
NaimenStolbca = Chr(64 + NomerStolbca)
Else
NaimenStolbca = Chr(64 + (NomerStolbca - 1)  26) & Chr(65 + (NomerStolbca - 1) Mod 26)
End If
Носи на здоровье!
0
 Аватар для palva
4274 / 2967 / 692
Регистрация: 08.06.2007
Сообщений: 9,917
Записей в блоге: 4
22.03.2011, 12:48
Можно так:
Visual Basic
1
2
s = ActiveCell.Address
s = Mid(s, 2, InStr(2, s, '$') - 2)
0
Wulf007
23.01.2013, 11:09
Может, кому будет полезно:
Скрытие диапазона столбцов при номирации столбцов числом:

Скрывает только один столбец (как указать «с до» не нашёл)
Visual Basic
1
YYYY.Columns (ХХХХ).EntireColumn.Hidden = True
Где YYYY – что-нибудь
ХХХХ – колонка из YYYY
Кое-кто перебирает все значения, скрывая столбцы

Разбирался всего день. Но ответ нашел.
Вот как надо.
Visual Basic
1
2
3
4
 With Worksheets("YYYY")
               .Range(.Cells(7, столбец_от), _
               .Cells(7, столбец_до)).EntireColumn.Hidden = True
End With
1 / 1 / 0
Регистрация: 22.01.2014
Сообщений: 10
22.01.2014, 11:35
Топик древний, но всё же.

Visual Basic
1
 Set rngRange = wsSheet.Columns(wsSheet.Cells(1, 1).Column)
В итоге а rngRange именно область с адресом "A:A", а для того что бы убрать $ не нужно ни чего придумывать

Visual Basic
1
addressmy = rngTRange.Address(0, 0)

даст вам именно строку "A:A" а не "$A:$A".
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,670
22.01.2014, 13:41
Цитата Сообщение от gas1979 Посмотреть сообщение
т.е. выделил колону 'С'
Visual Basic
1
asd = Replace(Selection.Address, "$", "")
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.01.2014, 13:41
Помогаю со студенческими работами здесь

Получить название выделенной колонки DataGridView
1. Получить название выделенной колонны 2. Возможность редактировать ячейки. (AllowUsertoEdit включён, но всё равно не могу...

Получение выделенной строки из ListBox
Здравствуйте, я тут недавно сел писать плеер и захотел сделать плейлист, но ни как не могу получить имя выделенного файла из listBox. ...

Получение данных из выделенной строки DataGridView
Люди, вопрос простой. Например есть List&lt;Client&gt; - я его вывожу в грид. Как мне получить полные данные по клиенту из выделенной строчки...

Получение значения выделенной ячейки tableView
Всем доброго времени суток. Пишу программу на QT Creater, используя модели, требуется взять значение из 0 столбца, выделенной в данный...

Получение значений выделенной строки в таблице
Использую TableView. Как мне получить значение 2-го столбца выделенной строки?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru