如何解决Excel 2019 中的 VBA ByRef 参数类型不匹配
又一次尝试逃离 VBA 失败。我正在尝试将 Excel VBA 中的字符串解析为两个变量。我确实在脑海中提出了非常识部分来处理它,但仍然没有运气。
Sub StartEndMonth(ByVal MonthRange As String,ByRef MonthStart As String,ByRef MonthEnd As String) ' xxx-xxx
MonthStart = "Jan"
MonthEnd = "Dec"
End Sub
Sub TestMonthList()
Dim Month_Range,Start_Month,End_Month As String
Month_Range = "Jan-Dec"
StartEndMonth Month_Range,End_Month
MsgBox MonthRange & " " & Start_Month & " " & End_Month
End Sub
以上代码在调用例程中的 Start_Month 变量上引发 VBA ByRef 参数类型不匹配错误。我应该在 StartEndMonth 例程中有一些解析逻辑。在我消除了例程中的所有其他内容后,我仍然收到编译错误。
假设每个变量都已正确定义?还是不行?
感谢您的帮助!
解决方法
作为一般规则,不要编写修改其参数的子/函数。如果你计算了什么,返回,例如作为数组:
Function SplitMonthRange(MonthRange As String)
SplitMonthRange = Split(MonthRange,"-")
' you really should add some sanity checks,e.g. UBound() and value checks
End Function
然后 res 的工作非常简单:
Sub TestSplitMonthRange()
Dim monthRange as String,months As Variant
monthRange = "Jan-Dec"
months = SplitMonthRange(monthRange)
MsgBox monthRange & ": " & months(0) & " to " & months(1)
End Sub
提示 - 这个:
Dim Month_Range,Start_Month,End_Month As String
声明 2 个变体和 1 个字符串。这是正确的:
Dim Month_Range As String,Start_Month As String,End_Month As String
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。