【发布时间】:2021-04-07 23:29:55
【问题描述】:
我收到错误“-2147417848 (80010108) 运行时错误,下面的代码在 Excel VBA 中使用”:
sub import()
Application.EnableEvents = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False
On Error GoTo error
Dim App As New excel.Application
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
App.CutCopyMode = False
App.Quit
MsgBox "OK"
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
error:
App.CutCopyMode = False
wbImport.Close SaveChanges:=True
App.Quit
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "FAIL"
End sub
最近发现,通过添加
Set App = Nothing
之后
App.Quit
它给了我“错误 462”,但我不知道为什么。调试正常运行,最后在msgboxes后提示错误。
【问题讨论】:
-
你为什么要创建一个新的应用程序?
-
@BigBen 真的不知道,重用和改编了这个网页的代码。还尝试使用 Set App = CreateObject("Excel.Application") 并获得运行时 91。
-
@BigBen 你是对的,它的优秀。我想打开文件而不显示(隐藏)
-
您退出了应用程序。它不再存在于记忆中。如果对象不再运行,它如何以
nothing终止。将对象设置为空是巫毒编程。没有必要。 -
删除该行。
标签: excel vba automation runtime