Попытка динамически обновить набор функций CUBEVALUE для создания отчета. Одно из измерений CUBEVALUE относится к списку проверки Excel.
То, что я пытаюсь сделать, это зациклить (через VBA) элементы списка проверки, чтобы Excel обновил и пересчитал CUBEVALUES, чтобы я мог вырезать и вставлять эти значения (и пару диаграмм) ниже, чтобы сделать все это еще раз.
Проблема в том, что CUBEVALUE копируется, когда отображается «ПОЛУЧЕНИЕ ДАННЫХ ...», и я хочу подождать, пока данные будут хорошими, прежде чем я их скопирую.
Хотелось бы получить представление о том, как лучше это сделать.
Пробное приложение. Ожидание и сон, но даже с задержкой в 20 секунд он все равно не срабатывает
Set inputRange = Evaluate(Range("C1").Validation.Formula1)
For Each c In inputRange
Range("C1").Value = c.Value
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 20
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Range("A22:A42").EntireRow.Insert
Range("A3:A20").EntireRow.Copy
Range("A3").Offset(21, 0).PasteSpecial xlPasteValues
Range("A3").Offset(21, 0).PasteSpecial xlPasteFormats
ActiveSheet.Shapes.Range(Array("shpGraphs")).Select
Selection.Copy
Range("A29").Select
ActiveSheet.PasteSpecial Format:="Picture (PNG)", Link:=False, DisplayAsIcon:=False
C1 используется в D1
=IF(C1="All","[Table1].[Location].[All]","[Table1].[Location].[All].["&C1&"]")
, который используется в функции CubeValue (8 на цикл), например:
=CUBEVALUE("ThisWorkbookDataModel",$D$1,"[Measures].[Number of Cars]")
Попытка заставить Excel «ждать» после Range («C1»). Значение = c.Value строка достаточно длинная, прежде чем остальная часть кода будет запущена.