Win10x64,office 365 x64 我正在运行Access宏。 我打开excel工作簿,然后找到最后一个非空白单元格或第一个非空白单元格。 所有常量都是这样定义的
xlPart = 2
xlFormulas = -4123
xlByRows = 1
xlNext = 1
ws
是一个Worksheet对象。我可以选择并激活工作表和范围而不会出现错误,例如这些线路运行良好
ws.Activate
ws.select
ws.Cells(1, 1).select
ws.Cells(1, 1).Activate
当我运行此代码时,我收到Run-time error '9': Subscript out of range.
错误
Set rFound = ws.Cells.Find("*", ws.Cells(1, 1), _
xlPart, _
xlFormulas, _
xlByRows, _
xlNext, _
False)
但是,如果我运行此代码,它可以正常工作:
Set rFound = ws.Cells.Find("*", ws.Cells(1, 1))
如何将参数从Access VBA传递到Excel Range.Find方法。 请不要建议其他查找非空白单元格的方法,我这样做是为了完成此数据库,但请尝试回答有关如何使此特定方法在Access中运行的问题。< / p>
谢谢,
答案 0 :(得分:1)
我认为参数的顺序是错误的 - 这只在你没有使用命名参数时才有意义(如你的例子中所示)。我假设那是因为你没有Excel的引用?
在任何情况下,您是否检查了参数的隐式顺序,以确保您按正确的顺序使用它们?
默认情况下,订单定义为:
LookIn
看起来你LookAt
Set rFound = ws.Cells.Find("*", ws.Cells(1, 1), _
xlFormulas, xlPart, _
xlByRows, xlNext, False)
尝试将其更改为:
deleteData(id) {
return this.http.delete( this.api, id)
}