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

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

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

Author24 — интернет-сервис помощи студентам
Как получить номер выделенной колонки, т.е. выделил колону 'С', а он мне выдал, колонка '3', а не 'C:C'
Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2011, 13:50
Ответы с готовыми решениями:

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

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

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

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

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

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 4
Мне кажется так проще :-)

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

Использование 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
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
21.03.2011, 20:42 6
Для получения буквенного обозначения столбца, можно использовать 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  [ТС] 7
всем спасибо
0
4 / 4 / 2
Регистрация: 06.03.2011
Сообщений: 151
22.03.2011, 12:04 8
Проверенный преобразователь номера столбца в его текстовое обозначение:

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
4253 / 2949 / 688
Регистрация: 08.06.2007
Сообщений: 9,855
Записей в блоге: 4
22.03.2011, 12:48 9
Можно так:
Visual Basic
1
2
s = ActiveCell.Address
s = Mid(s, 2, InStr(2, s, '$') - 2)
0
Wulf007
23.01.2013, 11:09 10
Может, кому будет полезно:
Скрытие диапазона столбцов при номирации столбцов числом:

Скрывает только один столбец (как указать «с до» не нашёл)
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 11
Топик древний, но всё же.

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
4079 / 1459 / 401
Регистрация: 07.08.2013
Сообщений: 3,645
22.01.2014, 13:41 12
Цитата Сообщение от gas1979 Посмотреть сообщение
т.е. выделил колону 'С'
Visual Basic
1
asd = Replace(Selection.Address, "$", "")
0
22.01.2014, 13:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2014, 13:41
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru