Это мой второй пост про этот макрос. Хотя первый пост получил несколько ответов, ни один из ответов не решил проблему (хотя спасибо за ответ).
Сценарий: у меня есть около 20 подтаблиц со ссылками на внешние источники. Количество ссылок на таблицу варьируется от 500 до 10 000. Основная электронная таблица вызывает макросы для открытия каждой подчиненной электронной таблицы по очереди и обновления ссылок. В каждой подтаблице есть панель инструментов, которая сообщает мне, сколько ссылок осталось обновить. Это делается путем подсчета количества значений «Н/Д» на каждой вкладке, а затем суммирования этих значений в ячейке A20. По мере обновления ссылок значение в A20 уменьшается до нуля.
Sub Sub01()
Dim NAtotal As Integer
Set ActiveWKB = Workbooks.Open("Sub01.xlsm")
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
Application.CalculateFull
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
NAtotal = Worksheets("Dashboard").Cells(20, "C").Value
MsgBox (NAtotal) 'Tells me how many cells remain to be updated – starts off at 4450.
NAtotal = 100 'Debugging effort to let me know that NAtotal does adjust.
MsgBox (NAtotal)
Do Until NAtotal = 0
Application.ScreenUpdating = True
MsgBox (NAtotal) 'Another debugging effort to monitor NAtotal. Starts at 100, then jumps to (and remains at) 4450 on the second loop and all subsequent loops.
NAtotal = Worksheets("Dashboard").Cells(20, "C").Value 'Resets NAtotal to the value in C20. This never changes, but remains at 4450.
DoEvents
Loop
Application.Calculation = xlManual
MsgBox ("Done")
Sheets("Dashboard").Activate
Range("B1").Select
ActiveWorkbook.Save
ActiveWindow.Close
End Sub`
Макрос должен продолжать цикл до тех пор, пока ячейка A20 не достигнет нуля, а затем остановится. Ячейка A20 ведет обратный отсчет, но переменная NAtotal остается в исходном значении.
Любые рекомендации/рекомендации приветствуются.