Я не признаюсь, что являюсь мастером Excel, поэтому, когда такие вещи появятся, я, как правило, могу написать макрос с максимальными усилиями, чтобы разобраться с любыми массовыми обновлениями, но на этот раз я в тупике.
Когда мы переносим наши отчеты, которые подключаются к источнику OLEDB и кубу, они сталкиваются со следующими двумя настройками соединения:
.RefreshOnFileOpen = True
.RefreshPeriod = 10
Мне нужно обновить все из них в рабочей книге до:
.RefreshOnFileOpen = False
.RefreshPeriod = 0
Запись макроса и изменение одного соединения приводит к следующему VB-скрипту:
Sub ChangeConn()
'
' ChangeConn Macro
'
'
With ActiveWorkbook.Connections("Connection").OLEDBConnection
.CommandText = Array("Something")
.CommandType = xlCmdCube
.Connection = Array( _
"OLEDB;Provider=MSOLAP.3;Persist Security Info=True;User ID="""";Initial Catalog=Something;Data Source=Something;Location=Something" _
, _
"Something;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error" _
)
.RefreshOnFileOpen = False
.SavePassword = False
.SourceConnectionFile = ""
.MaxDrillthroughRecords = 1000
.ServerCredentialsMethod = xlCredentialsMethodIntegrated
.AlwaysUseConnectionFile = False
.RetrieveInOfficeUILang = False
.ServerFillColor = False
.ServerFontStyle = False
.ServerNumberFormat = False
.ServerTextColor = False
End With
With ActiveWorkbook.Connections("Connection")
.Name = "Connection"
.Description = ""
End With
End Sub
Поэтому я подумал, что будет работать следующий макрос:
Sub FixConn()
For Each OLEDBConnection In ActiveWorkbook.Connections
.RefreshOnFileOpen = False
.RefreshPeriod = 0
Next OLEDBConnection
End Sub
Но нет ... Поэтому я буду продолжать пытаться выяснить это, но если кто-нибудь здесь сможет мне помочь, это было бы здорово.
[РЕДАКТИРОВАТЬ # 1] Благодаря Эндрю я стал на шаг ближе, и я перехожу по этой ссылке здесь. Кажется, я изменял этот объект не в том месте. :) http://msdn.microsoft.com/en-us/library/bb213295(office.12).aspx
[РЕШЕНИЕ]
Sub ReFixConn()
For Each PivotCache In ActiveWorkbook.PivotCaches
With PivotCache
.RefreshOnFileOpen = False
.RefreshPeriod = 0
End With
Next PivotCache
End Sub