Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2011, 22:50   #1
gamaiunov_alex
Пользователь
 
Регистрация: 20.09.2010
Сообщений: 20
По умолчанию Буквы в цифры

Часто бывает, что нумерацию столбцов (A-Z) нужно указывать именно буквами, в то время как производятся вычисления и действия с переменными номеров столбцов. то есть нужно как-то из цифр сделать букву, что бы обратиться к столбцу (ячейке). Можно ли как-то конвертировать туда-обратно?
В моем конкретном случае нужно обратиться к множеству поочередных столбцов, в цикл загоняю числа и в теле просто меняю нужный мне атрибут. Но обратиться с столбцу можно только через букву
xlWS.Columns("С:С").ColumnWidth = 10
Какие выходы?
Спасибо
gamaiunov_alex вне форума Ответить с цитированием
Старый 18.04.2011, 23:11   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Какие выходы?
xlWS.Columns(3).ColumnWidth = 10
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 18.04.2011, 23:54   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Возможно пригодится в нелегком познании
Код:
Function ConvertToInteger(ByVal lcAlpha As String) As Integer
       Select Case Len(lcAlpha)
       Case 1
         ConvertToInteger = (Asc(lcAlpha) - 64)
        Case 2
        ConvertToInteger = 26 * (Asc(Mid(lcAlpha, 1, 1)) - 64) + ((Asc(Mid(lcAlpha, 2, 1)) - 64))
        End Select
           
End Function


Public Function ExcelColName(ByVal Col As Integer) As String
        If Col < 0 And Col > 256 Then
            Exit Function
        End If
        Dim i As Integer
        Dim r As Integer
        Dim S As String
        If Col <= 26 Then
            S = Chr(Col + 64)
        Else
            r = Col Mod 26
            i = (Col \ 26)
            If r = 0 Then
                r = 26
                i = i - 1
            End If
            S = Chr(i + 64) & Chr(r + 64)
        End If
        ExcelColName = S
    End Function
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 19.04.2011, 00:23   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Но обратиться с столбцу можно только через букву
трудно с Вами спорить "с начала было слово" буквы появились потом...
а вот несколько способов обращения к столбцу С (начиная с твердо освоенного Вами).
Код:
Sub PaintC()
  Columns("C:C").Interior.Color = RGB(255, 0, 0)
  MsgBox "Красный видите?"
  Columns(3).Interior.Color = RGB(0, 255, 0)
  MsgBox "Зеленый видите?"
  Range("C1").EntireColumn.Interior.Color = RGB(0, 0, 255)
  MsgBox "Синий видите? заодно и монитор проверили..."
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 19.04.2011, 05:57   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Возможно, что речь идет о работе с группой столбцов. Например, выделить столбцы "C:H" через стиль A1 можно так:
Код:
Columns("C:H").Select
или так:
Код:
[C:H].Select
но если известны номера столбцов, либо эти номера вообще переменные, то можно воспользоваться таким способом:
Код:
x = 3: y = 8
Range(Cells(1, x), Cells(1, y)).EntireColumn.Select
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 19.04.2011, 09:40   #6
gamaiunov_alex
Пользователь
 
Регистрация: 20.09.2010
Сообщений: 20
По умолчанию

Больше спасибо всем за ответы.
gamaiunov_alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Системы счисления. Буквы <-> цифры. Zhenya-Pvl Общие вопросы C/C++ 12 21.02.2011 20:57
Цифры буквы в делфи MrMorozko Помощь студентам 2 01.11.2010 23:47
Как изменить цифры на буквы Артем125 Microsoft Office Excel 1 18.02.2010 13:44
Буквы или Цифры moff Общие вопросы C/C++ 2 25.10.2009 18:45
Упорядочить буквы и цифры (Pascal) BzDoN Помощь студентам 8 28.02.2009 19:13