Итак, у меня есть весь код VBA, и это кажется правильным, но это просто не освежает книги. Единственное, что я могу придумать, это когда я открываю листы, которые мне нужно разрешить, так что мне нужно добавить что-то в свой код?Обновление соединений данных в Excel 2010 VBA
Edit: Я бегу это через VBScript
Public wb As Workbook
Sub executeUpdate()
`some code
openBook path & testArray(i) & ext, True
saveBookAs path & testArray(i)
End Sub
Sub openBook(ByVal fileName As String, ByVal refresh As Boolean)
Set wb = Workbooks.Open(fileName, 0, False)
If refresh = True Then
wb.RefreshAll
End If
End Sub
Sub saveBookAs(ByVal fName As String)
wb.SaveAs fileName:=fName & "_posReport.xlsx"
End Sub
Вы пытались открыть книгу вручную, включить редактирование, а затем запустить код «RefreshAll», чтобы проверить, работает ли он вообще? – Michael
Ну, что я сделал, была открыта рабочая тетрадь, прежде чем включить редактирование, я начал запись макроса и прошел все шаги по обновлению таблицы. Посмотрел на код, и все, что он сказал, было «ActiveWorkbook.RefreshAll' – Adjit
Хорошо, я понял, как вы записали код. Но чтобы проверить, работает ли 'RefreshAll' вообще, я предлагаю вам вручную открыть книгу, включить редактирование и запустить« RefreshAll ». – Michael