vba - 尝试调用函数时出现名称错误
问题描述
我还在学习 VBA,所以我可能会犯很多非常基本的错误。目前我正在尝试制作一个可以计算表格行数的宏。这个子工作完美(使用名为“Tab”的表)。
Sub AddRowTable()
ActiveSheet.ListObjects("Tab").ListRows.Add (2)
End Sub
但是,当我尝试将此 sub 转换为函数以便可以使用表名作为变量调用它时,在单元格中写入“=AddRowTableFunction(Tab)”时出现名称错误。
Function AddRowTableFunction(TableName)
ActiveSheet.ListObjects(TableName).ListRows.Add (3)
End Function
我知道这只是类型的问题,但我只是找不到如何正确地做到这一点。
谢谢。
解决方案
目前我正在尝试制作一个可以计算表格行数的宏。
首先,这不是您的代码正在做的事情。您的代码正在向表中添加一行。将使用 访问行数ListRows.Count
。
当我尝试将此子转换为函数时,我可以使用表名作为变量来调用它...
您不需要 aFunction
来包含变量。aSub
和 a之间的区别在于Function
aFunction
返回一个变量,而 aSub
不返回(即 aFunction
将一个变量返回给使用它的代码)。Sub
s 和Function
s 都可以带变量。
返回给定表中行数的AFunction
将是这样的:
Function AddRowTableFunction(TableName As String)
AddRowTableFunction = ActiveSheet.ListObjects(TableName).ListRows.Count
End Function
对于添加行,您可能会使用 a Sub
,因为添加行的操作不会返回任何信息:
Sub AddRowTable(TableName As String)
ActiveSheet.ListObjects(TableName).ListRows.Add
End Sub
最后,当Function
在公式中使用时,正如 Apafey 指出的那样,您需要写"Tab"
(用引号引起来),而不仅仅是Tab
. "Tab"
告诉 Excel 传递单词Tab的文本,同时Tab
告诉 Excel 查找名为 的范围Tab
,该范围可能不存在。
推荐阅读
- python-3.x - Google Sheets API v4 不保存 mergeCells
- data-mining - 词关联挖掘如何泛化n-gram语言模型
- javascript - 天气 api 密钥不起作用
- google-contacts-api - Google GCM 弃用 - 使用 GCM 令牌的旧移动客户端
- ubuntu - sed 和重命名文件
- javascript - $(this) 不在委托事件处理程序中选择子元素
- c# - 从 ResourceDirectory 绑定到 ViewModel 中的属性
- sql - 如何在 Croud Repository 中查找特定列不同的最后 10 个实体?
- android - 如果我设置的触发时间已经过去,如何让 AlarmManager 不执行我的通知?
- c - Eclipse-Photon 三元算子编译错误