第一行后宏停止,自动化错误

时间:2016-02-26 14:32:11

标签: excel vba excel-vba macros

我正在编写一个宏,当我运行程序时,它在读取第一行时运行正常但是当它循环并执行第二行时,我得到一个错误,说自动化问题和宏退出。我想知道发生了什么,它适用于第一个循环而不是第二个循环。

基本上,我希望宏执行它读取行8 - 25,如果单元格在单元格中具有日期(i)(我是8,9,10等等),则列B然后复制行和将其粘贴到另一个工作簿。

任何团体有什么想法吗?谢谢! :)

Sub Update()

Dim Request As Workbook
Dim blank As Worksheet
Dim oakfield As Workbook

Set Request = Workbooks("Request_Microbiological_Analysis(blank).xlsm")
Set blank = Request.Worksheets("blank")
Set oakfield = Workbooks.Open("O:\_Public\Quality_Oakfield.xlsm")


With ThisWorkbook

Dim i As Long

For i = 8 To 25

If IsDate(Cells(i, 2)) Then

blank.Cells(i, "A").Resize(, 12).Copy

oakfield.Worksheets("Microlog").Range("A" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial xlPasteValuesAndNumberFormats

ActiveWorkbook.Save

ActiveWorkbook.Close


ElseIf IsEmpty(Cells(i, 2)) Then

MsgBox "Oakfield Quality Updated"

End If

Next i

End With

MsgBox "Quality System Updated"



End Sub

1 个答案:

答案 0 :(得分:1)

此处的问题似乎是因为您在循环中关闭了ActiveWorkbook,但之后又不再打开它。当工作簿对象未打开时,通常会发生automation error。您需要等到循环后才能关闭工作簿。