我想将一个范围值传递给一个函数,然后将得到的范围值返回给我的子。
子:
Dim nettowertadresse As Range
和
nettowertadresse = searchAdress(Dateiname, CurrentSheet, "Nettowert", Range("A1:BA2"))
功能:
Function searchAdress(inputworkbook As String, inputsheet As String, inputsearchtext As String, inputrange As Range) As Range
With Workbooks(inputworkbook).Sheets(inputsheet)
Set searchAdress = inputrange.Find(inputsearchtext, LookIn:=xlValues)
End With
End Function
第一个问题是我没有在函数中获得范围值。我认为我需要在searchAdress中使用.adress,但它不会那样工作。也许与另一个将地址传递给searchAdress的对象?但无论如何我得到错误91.请告知如何将函数中找到的单元格中的地址返回到我的子中的变量nettowertadresse。
答案 0 :(得分:3)
致电searchAddress
写
Set nettowertadresse = searchAdress(.....)
问题在于将searchAdress
的返回值分配给nettowertAddress
答案 1 :(得分:2)
你有两个问题:
Range
个对象对于第一个错误,原因是您调用Function
的方式。正如弗雷克斯指出的那样,you need to use the keyword Set
when calling searchAdress()
。
您还可以在以下位置看到:
原因是您尝试将对象结果分配给变量。在VBA中设置对象时,使用Set
关键字。
Range
对象代码 会根据需要返回Range
个对象。您可以通过一些调试测试代码来确认:
Set nettowertadresse = searchAdress(Dateiname, CurrentSheet, "Nettowert", Range("A1:BA2"))
nettowertadresse.Select
或
MsgBox nettowertaddresse.Address
这将选择包含您单词的单元格,或在弹出框中显示地址。
您可能正在使用MsgBox()
或将鼠标悬停在编辑器中的变量上,该变量返回实际范围值(nettowertadresse.value
)
这两个问题都与前几天的问题有关,这些问题解决了这些完全相同的问题,但在您开始使用自己的功能之前:
看看那里的答案如何与我在这里给你的解释直接相关。不同之处在于您现在正在使用自己的功能,但基本的基本问题仍然相同。