Это мой второй пост об этом макросе. Несмотря на то, что первое сообщение получило несколько ответов, ни один из ответов не решил проблему (спасибо, что ответили).
Сценарий:
У меня около 20 вложенных таблиц со ссылками на внешние источники. Количество ссылок в таблице варьируется от 500 до 10000. Основная таблица вызывает макросы, чтобы по очереди открывать каждую вложенную таблицу и обновлять ссылки.
У каждой электронной таблицы есть панель, которая сообщает мне, сколько ссылок осталось обновить. Это делается путем подсчета количества значений «N / A» в каждой вкладке, а затем суммирования этих значений в ячейке 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 остается на своем первоначальном значении.
Любые рекомендации / рекомендации приветствуются.