Предсказательный текст для VBA не работает
3 ответа
Excel не может понять, какой тип объекта Sheets(SName)
есть, поэтому IntelliSense не может предоставить советы.
Этого следовало ожидать, так как Sheets
Коллекция содержит как Worksheet
а также Chart
Объекты. Это означает, что он не знает, какие аргументы для Range
Коллекция должна быть - или даже, что это коллекция. (Подумайте о .Add
Метод - разные аргументы для каждого типа объекта!)
Тем не менее, быстрый тест показывает, что он по- прежнему не может определить тип объекта, если вы используете Worksheets(SName)
- хотя все объекты в Worksheets
коллекция Worksheet
объекты.
Следующий код позволяет Excel идентифицировать тип объекта и, следовательно, позволяет отображать IntelliSense:
Option Explicit 'Always put this at the top of your Module!
Sub DataRoll()
Dim wsTMP As Worksheet, SName As String
SName = "Testing"
Set wsTMP = ThisWorkbook.Worksheets(SName)
With wsTMP
.Range 'IntelliSense will pop up as soon as you add "("
End With
Set wsTMP = Nothing 'Tidy up after ourselves
End Sub
Intellisense автоматически включен в VBA, не уверен, что вы имеете в виду, когда говорите, что это случается иногда (пример сценария, когда он не появляется, поможет нам лучше понять)
Однако вы можете попробовать следующие шаги:
Попробуйте Ctrl+Пробел в редакторе (который приводит к списку доступных предсказаний)
В качестве альтернативы вы можете перейти к Обозревателю объектов (F2), который позволяет вам исследовать библиотеки классов и доступные объекты.
См. Снимок экрана ниже, например (когда вы нажимаете Ctrl+Пробел после Sheets( )
Я думаю, что это нормальное поведение. Я работаю с Excel VBA в течение длительного времени. Если снять скобку и переписать ее, предикативный текст должен появиться снова.