gpt4 book ai didi

vba - 组声明会导致 ByRef 编译错误吗?

转载 作者:行者123 更新时间:2023-12-04 21:53:39 28 4
gpt4 key购买 nike

我在 Excel 2016 中编写脚本,遇到了一些奇怪的行为,具体取决于我定义变量的方式。我在下面创建了一些示例代码来重现错误。

我想知道这是一个已知的 VBA 错误还是我做错了什么?

Sub IWork()
Dim name As String ' name is declared alone
Dim lastname As String
name = "Ben"
Hello name:=name
End Sub

' IFail creates a compile error
' ByRef argument type mismatch
Sub IFail()
Dim name, lastname As String ' name is declared with other variables
name = "Ben"
Hello name:=name
End Sub

Sub Hello(ByRef name As String)
' Do something with name ...
Debug.Print "Hello " & name
End Sub

最佳答案

当您像这样定义它们时:

Dim name, lastname As String 

你实际上是这样定义它们的:
Dim name As Variant, lastname As String 

你想像这样定义它们
Dim name As String, lastname As String 

就个人而言,我更喜欢在单独的行上定义它们。
Dim name As String
Dim lastname As String

此外,我喜欢在变量名前加上一个字母,提醒我它是什么类型的变量,并防止变量名与 Name 等关键字混淆。 - 像这样:
Dim sName As String
Dim sLastname As String

但这只是我的偏好。

关于vba - 组声明会导致 ByRef 编译错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49199625/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com