Excel VBA,错误 438 "object doesn' t 支持 WorksheetFunction 上的此属性或方法

标签 excel vba worksheet-function

所以我在使用地址函数的 AT_cellnum 行的标题中出现错误。

Sub AllTransURL()

Dim AT_rownum As Integer, pathrange As Range, AT_cellnum As String, sheetname As String

sheetname = "All Transmissions"
Set pathrange = ThisWorkbook.Worksheets("All Transmissions").Range("H1:H53")

AT_rownum = Application.WorksheetFunction.Match("infra/remwip/Public/0_00_Rapports", pathrange, 0)

AT_cellnum = Application.WorksheetFunction.Address(AT_rownum, 1, 1, 1, sheetname)

End Sub

谢谢

最佳答案

不需要 Address对象模型中的函数,因此它不在 WorksheetFunction界面。

经验法则,如果您要进行早期绑定(bind)的成员调用并且您要调用的成员没有出现在自动完成名称列表中,那么它不是您正在使用的对象的成员;如果代码无论如何编译,它很有可能会在运行时抛出错误 438。

不需要 Address函数,因为当你使用对象模型时,你有一个 Range对象和 Range有一个 Address随时可用的属性:WorksheetFunction因为这将是完全多余的。

您知道范围来自哪个工作表( sheetname );你知道你想要哪一行( AT_rownum ),你知道你想要哪一列( 1 ) - 因此:

Dim AT_range As Range
Set AT_range = ThisWorkbook.Worksheets(sheetName).Cells(AT_rownum, 1)

AT_cellnum = AT_range.Address

但正如 Scott 暗示的那样,单元格的地址在 VBA 中很少需要:如果您有 Range对象,您可能已经拥有所需的一切。

关于Excel VBA,错误 438 "object doesn' t 支持 WorksheetFunction 上的此属性或方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56279615/

相关文章:

vba - Excel VBA中复制时如何判断是否有隐藏列

vba - 多个VBA if语句触发不同的事件

excel - 根据旁边的单元格中的文本复制并粘贴数据

vba - 当单元格为空时隐藏行Excel(更快的方法)

VBA 工作表更改多次运行的代码

Excel 图表 - 动态设置系列结束

excel - 计算范围内与不同单元格内容匹配的单元格数量

python - 如何在 XLWings 中引用 Excel 表格列名称?

excel - 如何在VBA中遍历有限的数字集?

vba - 如何在 Powerpoint VBA 中运行宏 "OnEnterSlide"或 "OnLeaveSlide"?