【问题标题】:How to pass a variable to a function?如何将变量传递给函数?
【发布时间】:2012-09-27 01:59:33
【问题描述】:

我有一个名为 sortRows(location As String, wksht As String)

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

我不断收到错误 “编译错误。 “预期:=”

经过一番研究,我发现了 ByRef 指令(?)并将 Sub 重写为 sortRows(location As String, ByRef wksht As String)

但在工作表循环中调用它时,我仍然遇到同样的错误。

Sub 工作正常,但我似乎无法正常调用它。

我尝试了两种调用 Sub 的方法: sortRows(“佛罗里达”,工作表名称) sortRows ("佛罗里达", wksht:=sheetname)

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

【问题讨论】:

  • 能否请您说明如何调用该函数
  • 请提供您从中调用 sortRows 的子代码和 sortRows 子本身的代码。

标签: excel vba


【解决方案1】:

没有看到你的完整代码有点难。

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

这里有一个很好的参考来自 Pearson Passing Simple Variables ByRef And ByVal

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

【讨论】:

  • 感谢 brettdj,这很有效。但我永远不会猜到“呼叫”指令。我应该学习什么基础知识?
  • @KenIngram 我在上面添加了一个链接,rgds DB
猜你喜欢
  • 1970-01-01
  • 2020-12-20
  • 2011-06-21
  • 1970-01-01
  • 2020-07-28
  • 1970-01-01
  • 1970-01-01
  • 2015-06-08
相关资源
最近更新 更多