从Access vba模块运行Excel range.find方法失败/错误

时间:2018-05-30 21:04:57

标签: vba excel-vba ms-access access-vba office365

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>

谢谢,

1 个答案:

答案 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)
  }

For reference