excel VBA代码中的自动化错误或错误462
我在Excel VBA中使用以下代码时出现错误“-2147417848(80010108)运行时错误”: 最近发现,通过添加excel VBA代码中的自动化错误或错误462,excel,vba,automation,runtime,Excel,Vba,Automation,Runtime,我在Excel VBA中使用以下代码时出现错误“-2147417848(80010108)运行时错误”: 最近发现,通过添加 Set App = Nothing 之后 它给了我“错误462”,但我不知道为什么。调试只是正常运行,在msgboxes之后的最后会出现错误提示。我确信这不是最好的解决方案,但我发现的是: 1-无需Dim App As New excel.Application在后台打开excel文件 屏幕在打开前后更新属性权限足以不显示流程: Application.Scre
Set App = Nothing
之后
它给了我“错误462”,但我不知道为什么。调试只是正常运行,在msgboxes之后的最后会出现错误提示。我确信这不是最好的解决方案,但我发现的是: 1-无需
Dim App As New excel.Application
在后台打开excel文件
屏幕在打开前后更新属性权限足以不显示流程:
Application.ScreenUpdating = False
Dim wbImport As Workbook
Set wbImport = Workbooks.Open(ThisWorkbook.Path & "\example.xlsm"
Application.ScreenUpdating = True
2-我忘了在“错误:”句柄之前添加Exit sub
最终代码:
sub import()
On Error GoTo error
Application.EnableEvents = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim wbImport As Workbook
Set wbImport = App.Workbooks.Open(ThisWorkbook.Path & "\" & "example.xlsm")
'DATA COPY
Dim Lastrow As Integer
Lastrow = ThisWorkbook.Worksheets("DATA").Cells(Rows.Count, 1).End(xlUp).Row
ThisWorkbook.Worksheets("DATA").Range("A2:AM" & Lastrow).Copy
wbImport.Worksheets("DATA").Range("a2").PasteSpecial Paste:=xlPasteValues
wbImport.Worksheets("CONFIG").Shapes("pdv").Visible = False
wbImport.Close SaveChanges:=True
MsgBox "OK"
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
exit sub
error:
wbImport.Close SaveChanges:=True
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "FAIL"
End sub
我相信这不是最好的解决方案,但我发现: 1-无需
Dim App As New excel.Application
在后台打开excel文件
屏幕在打开前后更新属性权限足以不显示流程:
Application.ScreenUpdating = False
Dim wbImport As Workbook
Set wbImport = Workbooks.Open(ThisWorkbook.Path & "\example.xlsm"
Application.ScreenUpdating = True
2-我忘了在“错误:”句柄之前添加Exit sub
最终代码:
sub import()
On Error GoTo error
Application.EnableEvents = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim wbImport As Workbook
Set wbImport = App.Workbooks.Open(ThisWorkbook.Path & "\" & "example.xlsm")
'DATA COPY
Dim Lastrow As Integer
Lastrow = ThisWorkbook.Worksheets("DATA").Cells(Rows.Count, 1).End(xlUp).Row
ThisWorkbook.Worksheets("DATA").Range("A2:AM" & Lastrow).Copy
wbImport.Worksheets("DATA").Range("a2").PasteSpecial Paste:=xlPasteValues
wbImport.Worksheets("CONFIG").Shapes("pdv").Visible = False
wbImport.Close SaveChanges:=True
MsgBox "OK"
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
exit sub
error:
wbImport.Close SaveChanges:=True
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "FAIL"
End sub
为什么要创建一个新的应用程序?安装免费的奇妙的Rubberduck加载项for VBA并查看代码检查。这将帮助您了解由于代码中的假设而可能出现错误的地方。提示,具体检查将列在语言机会下。@BigBen完全不知道,重新使用并改编了此网页中的代码。还尝试了Set App=CreateObject(“Excel.Application”)并获得运行时91。您退出了该应用程序。它已不在记忆中。如果对象不再运行,它如何以
nothing
终止。将对象设置为零是巫毒编程。没有必要。删除该行。为什么要创建一个新的应用程序?安装免费的奇妙的Rubberduck加载项for VBA并查看代码检查。这将帮助您了解由于代码中的假设而可能出现错误的地方。提示,具体检查将列在语言机会下。@BigBen完全不知道,重新使用并改编了此网页中的代码。还尝试了Set App=CreateObject(“Excel.Application”)并获得运行时91。您退出了该应用程序。它已不在记忆中。如果对象不再运行,它如何以nothing
终止。将对象设置为零是巫毒编程。没有必要。请拆下线路。