Vba 带参数的调用过程
我有一个程序:Vba 带参数的调用过程,vba,Vba,我有一个程序: Sub a_fillValueByCells(sheet As Worksheet, v As String) Set cellNames = produceCellNames(Row, cs) For Each cell In cellNames MsgBox cell Next End Sub 我想称之为: Set localSheet = ActiveSheet Dim v As String Set v = dataSheet.R
Sub a_fillValueByCells(sheet As Worksheet, v As String)
Set cellNames = produceCellNames(Row, cs)
For Each cell In cellNames
MsgBox cell
Next
End Sub
我想称之为:
Set localSheet = ActiveSheet
Dim v As String
Set v = dataSheet.Range(cellName("B", Row))
a_fillValueByCells (localSheet, v)
但我在编辑时间的最后一行出错:
预期:=
如果我删除最后一个参数:
a_fillValueByCells (localSheet)
为什么我会收到错误消息以及如何修复它?
谢谢将
设置v=dataSheet.Range(cellName(“B”,行))
更改为
v=dataSheet.Range(cellName(“B”,行)).Text
由于您返回的是范围而不是字符串。我通过更改以下内容解决了问题:
a_fillValueByCells (localSheet, v)
到
更新
我找到了另一个解决方案-只需删除括号:
a_fillValueByCells localSheet, v
对不起,字符串不需要设置
v=dataSheet.Range(cellName(“B”,Row))。Text
应该可以。我认为您的方法名称令人困惑。考虑将<代码> AyfIValueValueBys<代码>改为<代码> fyValueByCys<代码>。另外,\uuu
下划线使它看起来像是的事件fillValueByCells
的事件处理程序,其中在实例级别声明了事件对象a
;这是VB6/VBA在事件处理程序中使用的惯例。如果你想保留括号,你也可以在方法调用之前添加Call
,但那是过时的,相当难看。荣誉(+1)因为你自己找到了一切:)
a_fillValueByCells localSheet, v