Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Макрос Уокенбаха Дж. (вложенные Select Case) у меня неправильно работает., Определение диапазонаЙ
 
Начал изучать VBA, используя  книгу Уокенбах Дж. - Excel 2010. Профессиональное программирование на VBA.
Один пример у меня дает не верный результат.
Текст книги:

Структуры Select Case можно вкладывать друг в друга. Например, следующая процедура использует процедуру VBA TypeName для определения того, что выделено в настоящий момент (диапазон ячеек, ничего или что-либо еще). Если выделен диапазон, процедура вызывает на выполнение вложенный оператор Select Case, а также проверяет количество ячеек в диапазоне. Если выделена одна ячейка, отображается сообщение Выделена одна ячейка. В противном случае отображается сообщение, в котором указывается количество выделенных строк.

Sub SelectionType()
   Select Case TypeName(Selection)
       Case "Диапазон"
           Select Case Selection.Count
           Case 1
               MsgBox "Выделена одна ячейка "
           Case Else
               MsgBox Selection.Rows.Count & " строк "
           End Select
       Case "Ничего"
           MsgBox "Ничего не выделено"
       Case Else
           MsgBox "Выделен объект, отличный от диапазона "
   End Select
End Sub


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

Помогите, пожалуйста разобраться в чем ошибка.
 
Сергей Эм, код следует выделять соответствующим тегом. Ищите такую кнопку (см. скрин) и исправьте своё сообщение.
P.S. Ведь не первый день на форуме...
Тег VBA.jpg (19.2 КБ)
 
Перевод книги кривой
должно быть Case "Range" вместо Case "Диапазон"
 
Код
Sub SelectionType()

    Select Case TypeName(Selection)
        Case "Range"
            Select Case Selection.Count
            Case 1
                MsgBox "Выделена одна ячейка "
            Case Else
                MsgBox Selection.Rows.Count & " строк "
            End Select
        Case "Nothing"
            MsgBox "Ничего не выделено"
        Case Else
            MsgBox "Выделен объект, отличный от диапазона "
    End Select
End Sub


 
Юрий М, большое спасибо! Все ясно!
 
У меня только вот сомнения насчёт Nothing.
 
А у меня сомнения: видел ли автор сообщение №2?
 
Цитата
Юрий М написал:
У меня только вот сомнения насчёт Nothing.
Такое может быть, если код в надстройке и нет открытых рабочих книг.
Владимир
Страницы: 1
Читают тему (гостей: 1)
Наверх