2016-02-26 2 views
1

Я писал макрос, и когда я запускаю программу, он отлично работает при чтении первой строки, но когда он обходит вокруг и делает вторую строку, я получаю сообщение об ошибке, говорит автоматизация проблема и макрос закрывается. Мне было интересно, что происходит, что отлично работает для первого цикла, но не для второго.Макро останавливается после первой строки, ошибка автоматизации

В принципе, я хочу, чтобы макрос делал это, читал строки 8 - 25, если ячейка имеет дату в ячейке (i) (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 
+0

'IsDate (Ячейки (i, 2))' как компьютер знает, какую ячейку вы хотите здесь? Вы знаете, как это сделать, потому что позже вы сделали «blank.Cells (i,« A »)'^_^ – findwindow

+0

, если ячейка имеет дату, а затем скопируйте всю строку. –

+0

, если ячейка не имеет на ней даты, затем остановите макрос. В основном я хочу, чтобы он читал столбец b, строки 8-25, пока не будет даты в столбце b и сохраните другую книгу, когда это будет сделано. –

ответ

1

Ваш вопрос здесь, как представляется, в связи с тем, что вы закрываете ActiveWorkbook в цикле, но не открыть его снова. Обычно automation error происходит, когда объект рабочей книги ссылается, когда он не открыт. Вам нужно подождать, пока цикл не закроет вашу книгу.

+0

Я понял, что это была причина, когда он смотрел онлайн, и попробовал. Благодарю. –

+0

Я никогда не знал, что ошибка автоматизации сделала это, спасибо! –

Смежные вопросы