运行时错误“424” - Excel 中的 VBA

anastasya24

我对 VBA 世界非常陌生。

我想从不同工作簿中的 2 个工作表中选择 2 个范围。

但是我在我的脚本中收到了这条消息。请帮忙

Sub CommandButton1_Click()

Application.ScreenUpdating = False

Dim wb1 As Workbook, wb2 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim rng1 As Range, rng2 As Range

Set wb1 = Workbooks("TEMPLATE.xls")
Set ws1 = Sheets("macro")
Set rng1 = Range(Range("C3"), Range("C3").End(xlDown)).Select

Set wb2 = Workbooks("booking.xlsx")
Set ws2 = Sheets("ABC")
Set rng2 = Range(Range("L3"), Range("L3").End(xlDown)).Select

End Sub
马克·菲茨杰拉德

一直在尝试和测试。

我试图通过创建您的代码中提到的书籍和工作表来复制您的错误。向宏表中添加了一个 CommandButton1,并将您的代码插入到其 Click 事件处理程序中。

尝试单步执行代码确实选择了宏表上的范围,但抛出了错误 424(需要对象)并且代码执行终止而没有突出显示 IDE 中的任何内容。

改变:

Set rng1 = Range(Range("C3"), Range("C3").End(xlDown)).Select

Set rng1 = Range(Range("C3"), Range("C3").End(xlDown))
rng1.Select

摆脱了错误,但下一步在 上给出了错误 9(下标超出范围)Set ws2 = Sheets("ABC")这是因为 TEMPLATE.xls 仍然是活动工作簿。

更改Set ws2 = Sheets("ABC")Set ws2 = wb2.Sheets("ABC")清除此错误,但由于.SelectSet Rng2线再次出现错误 424 此外,选择了宏表上 L 列中的单元格。

改变:

Set rng2 = Range(Range("L3"), Range("L3").End(xlDown)).Select

至:

Set rng2 = Range(Range("L3"), Range("L3").End(xlDown))
rng2.Select

摆脱了那个错误,但宏表中的单元格仍然被选中。

为了解决这个问题,我改变了:

Set rng2 = Range(Range("L3"), Range("L3").End(xlDown))
rng2.Select

至:

With ws2
    Set rng2 = Range(.Range("L3"), .Range("L3").End(xlDown))
End With
rng2.Select

我以为已经解决了它,但后来得到了一个“错误 1004(Range 类的选择方法失败)”,我只能通过激活 bookings.xlsx 来克服它!

您需要明确声明您的表格和范围:

Sub CommandButton1_Click()
Dim wb1 As Workbook, wb2 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim rng1 As Range, rng2 As Range

    Application.ScreenUpdating = False
    Set wb1 = Workbooks("TEMPLATE.xls")
    Set ws1 = wb1.Sheets("macro")
    With ws1
        Set rng1 = .Range(.Range("C3"), .Range("C3").End(xlDown))
        rng1.Select
    End With

    Set wb2 = Workbooks("booking.xlsx")
    wb2.Activate
    Set ws2 = wb2.Sheets("ABC")
    With ws2
        Set rng2 = .Range(.Range("L3"), .Range("L3").End(xlDown))
    End With
    rng2.Select
    wb1.Activate
    Application.ScreenUpdating = True
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Excel VBA SUMIF运行时错误“ 424”:必需对象

Excel VBA:运行时错误424,需要对象

需要运行时错误“424”对象:Excel VBA

运行时错误6在Excel中的VBA中溢出

删除行时需要Excel VBA运行时错误'424'对象

如何解决Excel VBA中所需的运行时错误424对象?

VBA Excel 2010 msoFileDialogOpen路径。打开运行时错误'424':必需的对象

复制行时VBA-Excel中的运行时错误1004

运行时错误'28':Excel VBA中的堆栈空间不足,并且Excel崩溃

运行时错误13 VBA Excel

Excel VBA运行时错误1004

错误处理不适用于 excel-vba 中的运行时错误 9

VBA Excel中的“运行时错误13:类型不匹配”错误

为什么我会从此代码中收到VBA运行时错误“ 424”对象必需错误?

分配工作簿变量时Excel / VBA中的运行时错误91

使用VBA从受保护的网站导入Excel中的数据时出现运行时错误438

无法在Excel VBA中打开文件,运行时错误为“ 52”

VBA Excel中的ADODB.Recordset运行时错误91

使用Excel VBA在工作簿中查找匹配项:运行时错误1004

Excel运行时错误13中的VBA:类型不匹配

在单元格中插入值或公式时,Excel VBA运行时错误1004

Excel VBA中的字符串连接因运行时错误而失败

Excel VBA:在单元格中插入公式会给出运行时错误“ 1004”

在Excel VBA中复制和粘贴单元格值:编译和运行时错误

长嵌套的IF语句在Excel VBA中创建运行时错误1004

在Excel VBA中删除多个列时出现运行时错误1004

VBA Excel 错误运行时错误“53”

运行时424,Excel宏VBA上需要对象

VBA-运行时错误424:需要对象