VBA 的预测文本不起作用

kch*_*ngg -1 excel intellisense vba excel-2016

好吧,这可能是一个非常愚蠢的问题,但我在写作时的预测文本只是偶尔发生。我目前正在使用 Excel 2016。  

键入会Range(打开工具提示:
显示工具提示正确显示的屏幕截图  
但是,打字.Range(With Sheets(SName)打开工具提示:
显示工具提示未显示的屏幕截图:(

有人可以帮忙吗?非常感谢!

Chr*_*dal 6

Excel 无法计算出对象类型Sheets(SName)是什么,因此IntelliSense无法提供提示。

这是意料之中的,因为该Sheets集合同时包含Worksheet Chart对象。这意味着它不知道Range集合的参数应该是什么——甚至不知道它一个集合。(想想.Add方法 - 每个对象类型的不同参数!)

但是,快速测试表明,如果您使用它,它仍然无法识别 Object 类型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
Run Code Online (Sandbox Code Playgroud)