powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel 2007 VBA ошибка 438
12 сообщений из 12, страница 1 из 1
Excel 2007 VBA ошибка 438
    #37634353
GeenS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сто лет не программировал в Excel, возникла потребность, нашел процедуру в инете, немного модифицировал, пробую запустить, выдает ошибку Object doesn't support this property or method (Error 438) на вызове метода Activate у объекта типа Range, вот у этого объекта cActive.Activate

Почему? метод законный, выбирается и поддерживается через помощника...ничего не понимаю... подозреваю, что это следствие моего полного ламерства и я не вижу чего-то лежащего на поверхности...просьба ткнуть носом


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
Public Sub GotoFixedCell(vValue As Variant, sSheetName As String)
  
  Dim objWSheet As Worksheet
  Dim cActive As Range
  Dim cStart As Range
  Dim cForFind As Range
  Dim i As Integer

  On Error GoTo ErrorÍandler

    Set objWSheet = ActiveWorkbook.Worksheets.Item(sSheetName)
    Set cForFind = objWSheet.Cells 
          
    
    Set cActive = cForFind.Find( _
            What:=vValue, _
            After:=ActiveCell, _
            LookIn:=xlValues, _
            LookAt:=xlPart, _
            SearchOrder:=xlByRows, _
            SearchDirection:=xlNext, _
            MatchCase:=False)
        
    
    Set cStart = cActive
    
    While Not cActive Is Nothing
            
     
            Set cActive = cForFind.FindNext(cActive)
            If cActive.Address = cStart.Address Then
               cActive.Activate
               Exit Sub
            End If
           
            
    Wend
        
    
     
  Exit Sub

ErrorHandler:
    MsgBox Err.Descration, vbExclamation, "Error #" & Err.Number
    
End Sub
...
Рейтинг: 0 / 0
Excel 2007 VBA ошибка 438
    #37634530
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeenSObject doesn't support this property or methodНу нет у Range такого метода. Используй Select
...
Рейтинг: 0 / 0
Excel 2007 VBA ошибка 438
    #37634782
GeenS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

во-первых с Select такая же байда
во-вторых Activate у Range таки есть, файл прилагаю
...
Рейтинг: 0 / 0
Excel 2007 VBA ошибка 438
    #37634819
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставьте первой строкой в модуле Option Explicit
...
Рейтинг: 0 / 0
Excel 2007 VBA ошибка 438
    #37634838
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал, у меня этот код ошибку не выдает.
Выкладывайте файл
...
Рейтинг: 0 / 0
Excel 2007 VBA ошибка 438
    #37634886
GeenS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Excel 2007 VBA ошибка 438
    #37634956
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeenS,

Разобрался
Активируемый диапазон находится на неактивном листе, поэтому не хочет активироваться
...
Рейтинг: 0 / 0
Excel 2007 VBA ошибка 438
    #37635030
GeenS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ааа...вот оно что...стало быть, активировать лист в точке обнаружения искомого значения? щас попробуем
...
Рейтинг: 0 / 0
Excel 2007 VBA ошибка 438
    #37635042
GeenS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
точно...вот ведь...ну я ж говорю - ламер...ну все забыл на хрен! спасибо большое! сэнк ю вери мач, не побоюсь этого слова!
...
Рейтинг: 0 / 0
Excel 2007 VBA ошибка 438
    #37635074
GeenS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если можно еще один вопрос, коли у Вас уже файлик под рукой. Там вот на Листе 2 в модуле листа вызывается весь процесс по нажатию "1". Первоначально хотел по ENTER, но чет не перехватывает нажатия...писал вот так, как в мануале
Application.OnKey "{~}", "Лист2.CallGotoFixedCell", т.е. тильда - это Enter...однако ни фига...не подскажете?
...
Рейтинг: 0 / 0
Excel 2007 VBA ошибка 438
    #37635320
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeenSApplication.OnKey "{~}"откуда там взялись фигурные скобки? Внимательно читаем хелп
...
Рейтинг: 0 / 0
Excel 2007 VBA ошибка 438
    #37637485
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. По первому вопросу, проще всего активировать лист по родительскому объекту диапазона:

Код: vbnet
1.
2.
cActive.Parent.Activate ' <-- Активировать лист
cActive.Activate        ' <-- А теперь и диапазон



2. По второму вопросу учитывайте то, что обычно на клавиатуре две клавиши Enter, для OnKey "~" означает Enter на основной клавиатуры, а "{ENTER}" – на дополнительной цифровой клавиатуры.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub SetOnkey()
  Application.OnKey "~", "Macro1"       ' <-- для Enter на основной клавиатуре
  Application.OnKey "{ENTER}", "Macro2" ' <-- для Enter на дополнительной цифровой клавиатуре
End Sub

Sub ResetOnkey()
  Application.OnKey "~"
  Application.OnKey "{ENTER}"
End Sub

' Основная клавиатура
Sub Macro1()
  MsgBox "~"
End Sub

' Дополнительная клавиатура
Sub Macro2()
  MsgBox "{ENTER}"
End Sub



Поэтому лучше задавать OnKey на один и тот же макрос и для "~", и для "{ENTER}"

3. Select и Activate по результату могут совпадать, но не всегда.
Код: vbnet
1.
2.
3.
4.
Sub Test()
  Range("A1:D5").Select ' <-- Выделение A1:D5
  Range("B2").Activate  ' <-- активирование B2, не снимая выделения 
End Sub
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel 2007 VBA ошибка 438
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]