web-dev-qa-db-ja.com

Powershellスクリプト-Excelを開き、外部データを更新し、名前を付けて保存

このスクリプトを手伝ってくれる人はいますか?.

$file = 'C:\Scripts\Spreadsheet.xlsx'
$x1 = New-Object -ComObject "Excel.Application"
$x1.Visible = $false
$enddate = (Get-Date).tostring("dd-MM-yy")
$filename = 'C:\Scripts\Spreadsheet ' + $enddate + '.xlsx'
$wb = $x1.workbooks.Open($file)
$wb.refreshall
$wb.SaveAs($filename)
$wb.Close()
$x1.Quit()
Remove-Variable wb,x1

ブックは開き、ODBC接続を介して外部データでピボットテーブルを更新します。ブックを手動で開くと更新されます。スクリプトで開くと、データが更新されずに開かれるだけです。 。

私は以下を試しました:

  • チェックボックスをチェックする"常に接続ファイルを使用する"
  • Excel内のデータソースのパスワードを保存する
  • "Enable background refresh"と他のすべての更新オプションを無効にする
  • ブックを開いたときにデータソースを自動的に更新するマクロを作成しました

どんな助けでも感謝します、ありがとう!

6
user8593258

変化する

$wb.RefreshAll

$wb.RefreshAll()
9
oleg