Excel 如何将变量传递给函数?

Excel 如何将变量传递给函数?,excel,vba,Excel,Vba,我有一个叫 sortRows(位置为字符串,wksht为字符串) 参数wksheet正在通过另一个在电子表格中循环的子例程传递给sortRows 我一直在犯错误 “编译错误。 “应为:=” 经过一些研究,我发现了ByRef指令(?),并将Sub重新编写为 sortRows(位置作为字符串,ByRef wksht作为字符串) 但在工作表循环中调用它时,仍然会出现相同的错误 潜水艇工作正常,但我似乎无法让它正常工作 我尝试了两种方法来呼叫Sub: sortRows(“佛罗里达”,姓名) sortRo

我有一个叫 sortRows(位置为字符串,wksht为字符串)

参数wksheet正在通过另一个在电子表格中循环的子例程传递给sortRows

我一直在犯错误 “编译错误。 “应为:=”

经过一些研究,我发现了ByRef指令(?),并将Sub重新编写为 sortRows(位置作为字符串,ByRef wksht作为字符串)

但在工作表循环中调用它时,仍然会出现相同的错误

潜水艇工作正常,但我似乎无法让它正常工作

我尝试了两种方法来呼叫Sub: sortRows(“佛罗里达”,姓名) sortRows(“佛罗里达”,wksht:=图纸名称)


这两种方法都会导致“编译错误”

如果看不到完整的代码,这有点困难

但我建议您尝试将工作表变量作为工作表传递,即

这里有一个来自皮尔逊的很好的参考


你能告诉我你是如何调用这个函数的吗?请告诉我你调用sortRows的sub的代码和sortRows sub本身的代码。谢谢brettdj,这很有效。但是我从来没有猜到“call”指令。我应该学习什么基础知识吗?@KenIngram我在上面添加了一个链接,rgds DB
Sub test()
Dim ws As Worksheet
Set ws = Sheets(2)
Call sortRows("MyName", ws)
End Sub

Sub sortRows(location As String, ByRef ws1 As Worksheet)
MsgBox ws1.Name
End Sub