VBA - помогите чайнику))

Elka_CA
Уже с Приветом
Posts: 7454
Joined: 26 Aug 2001 09:01
Location: Bay Area, CA

VBA - помогите чайнику))

Post by Elka_CA »

Надо срочно сделать домашнюю работу

не могу найти в своем учебнике примеров как при создании form для Excel
1. проверить вводимый символ на букву
мы проходили только функции isDate, isNumeric
2. как отформатировать колонки на нужную ширину, используя в качестве параметров(первая-проследняя колонки, ширина колонки) вводимые значения в form. в учебнике дан пример только автоформатирования: Columns(a:b).AutoFit

Иными словами надо создать форму в которую вводится три символа:
1. буква первой колонки
2. буква последней колонки
3. ширина.

К сожалению help на компе не установлен, книжки по VBA нет, знакомых программистов разбирающихся в этом элементарном вопросе тоже :(
поиск по ресурсам Интернета пока дает примеры решения отдельных функций.
chip700
Уже с Приветом
Posts: 672
Joined: 11 Apr 2001 09:01
Location: Russia, NN

Post by chip700 »

Если считать, что в переменных c1 c2 и w находятся значения введенные в форме, то можно сделать так:

Code: Select all

  c1 = UCase(c1)
  c2 = UCase(c2)
  If Len(c1) = 1 And c1 >= "A" And c1 <= "Z" Then
    If Len(c2) = 1 And c2 >= "A" And c2 <= "Z" Then
      Columns(c1 + ":" + c2).ColumnWidth = w
    Else
       'ошибка параметра c2
    End If
  Else
       'ошибка параметра c1
  End If

Хотя заметим, что буквенные обозначения столбцов необязательно состоят из одной буквы - могут из двух.
Ширина столбца для ColumnWidth задается в символах.
Elka_CA
Уже с Приветом
Posts: 7454
Joined: 26 Aug 2001 09:01
Location: Bay Area, CA

Post by Elka_CA »

chip700 wrote:Если считать, что в переменных c1 c2 и w находятся значения введенные в форме, то можно сделать так:

Code: Select all

  c1 = UCase(c1)
  c2 = UCase(c2)
  If Len(c1) = 1 And c1 >= "A" And c1 <= "Z" Then
    If Len(c2) = 1 And c2 >= "A" And c2 <= "Z" Then
      Columns(c1 + ":" + c2).ColumnWidth = w
    Else
       'ошибка параметра c2
    End If
  Else
       'ошибка параметра c1
  End If

Ширина столбца для ColumnWidth задается в символах.


Спасибо большое, а как в VBA разбивать строку на символы?
If Len(c1)>1 . То есть в общем случае столбец в Excel обозначается больше чем одной буквой и необходимо проанализировать строку на наличие в ней только букв.?
Хотя заметим, что буквенные обозначения столбцов необязательно состоят из одной буквы - могут из двух.
Ширина столбца для ColumnWidth задается в символах.[/quote]
chip700
Уже с Приветом
Posts: 672
Joined: 11 Apr 2001 09:01
Location: Russia, NN

Post by chip700 »

Получить доступ к конкретному символу строки, как например в С s[i] в VBA нельзя, можно только выделять очередной символ в другую строку при помощи функции Mid

current_char = Mid(our_string, current_position, 1)

Но при этом current_char - это все равно строка, просто она длиной в один символ

Return to “Вопросы и новости IT”