我有一个函数1,看起来像这样:
Function myFirstFunction(lngCol As Long) As String
Dim vArr
vArr = Split(Cells(1, lngCol).Address(True, False), "$")
Col_Letter = vArr(0)
End Function
我需要在这样的单独函数中调用此函数:
Function myOtherFunction(myVar as Variant) As Variant
Dim Some_Column As Range
Some_Column = Range("B4").Address
If Range((myFirstFunction(Some_Column.Column) & 65536)).End(xlUp) <> Range(myFirstFunction(Some_Column.Column) & 1) Then
...some code
End If
我想这是一个错误,因为我无法在第二个功能中使用第一个功能。有没有办法来解决这个问题?
您的功能没有传递任何东西。
您可能希望在第一个函数中将Col_Letter更改为myFirstFunction。
同样在第二个函数中,将65536更改为rows.count。
然后它将在这里错误:
Some_Column = Range("B4").Address
更改为此:
Set Some_Column = Range("B4")
这是因为它被定义为一个范围,因此您不能在其中传递地址(它是一个字符串),而在其中传递对象(必须使用Set作为对象)
在那之后应该一切都很好。
Function myFirstFunction(lngCol As Long) As String
Dim vArr
vArr = Split(Cells(1, lngCol).Address(True, False), "$")
myFirstFunction = vArr(0)
End Function
Function myOtherFunction(myVar As Variant) As Variant
Dim Some_Column As Range
Set Some_Column = Range("B4")
If Range((myFirstFunction(Some_Column.Column) & rows.count)).End(xlUp) <> Range(myFirstFunction(Some_Column.Column) & 1) Then
'...some code
End If
End Function
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句