VBA 的预测文本不起作用
Predictive Text for VBA not working
好吧,这可能是一个非常愚蠢的问题,但我在写作时的预测文本只是偶尔发生。我目前使用的是 Excel 2016。
键入 Range(
打开工具提示:
但是,在 With Sheets(SName)
中键入 .Range(
不会 打开工具提示:
有人可以帮忙吗?非常感谢!
我认为这是正常行为。我与 excel vba 合作的时间更长。如果您删除括号并重写它,预测文本应该会再次出现。
但更有帮助的可能是对象目录
Excel 无法确定对象类型 Sheets(SName)
是什么,因此 IntelliSense 无法提供提示。
这是意料之中的,因为 Sheets
集合包含 Worksheet
和 Chart
对象。这意味着它不知道 Range
集合的参数应该是什么——甚至不知道它 是 一个集合。 (想想 .Add
方法——每种对象类型都有不同的参数!)
但是,快速测试表明,如果您使用 Worksheets(SName)
,它仍然 无法识别对象类型 - 即使 [=18= 中的所有对象] 集合是 Worksheet
个对象。
下面的代码允许Excel识别Object类型,从而允许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+Space(这会产生一个可用预测列表)
或者您可以导航到对象浏览器 (F2),它允许您浏览 class 库和可用对象
请参见下面的屏幕截图(当您在 Sheets( )
之后按 Ctrl+Space
好吧,这可能是一个非常愚蠢的问题,但我在写作时的预测文本只是偶尔发生。我目前使用的是 Excel 2016。
键入 Range(
打开工具提示:
但是,在 With Sheets(SName)
中键入 .Range(
不会 打开工具提示:
有人可以帮忙吗?非常感谢!
我认为这是正常行为。我与 excel vba 合作的时间更长。如果您删除括号并重写它,预测文本应该会再次出现。
但更有帮助的可能是对象目录
Excel 无法确定对象类型 Sheets(SName)
是什么,因此 IntelliSense 无法提供提示。
这是意料之中的,因为 Sheets
集合包含 Worksheet
和 Chart
对象。这意味着它不知道 Range
集合的参数应该是什么——甚至不知道它 是 一个集合。 (想想 .Add
方法——每种对象类型都有不同的参数!)
但是,快速测试表明,如果您使用 Worksheets(SName)
,它仍然 无法识别对象类型 - 即使 [=18= 中的所有对象] 集合是 Worksheet
个对象。
下面的代码允许Excel识别Object类型,从而允许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+Space(这会产生一个可用预测列表)
或者您可以导航到对象浏览器 (F2),它允许您浏览 class 库和可用对象
请参见下面的屏幕截图(当您在 Sheets( )
之后按 Ctrl+Space