我试图自动完成我必须做的某些任务,尽管由于文件数量的原因很简单,但这很简单。我目前有一个脚本会刷新文件夹中的每个文件,现在这些文件有更多的工作表,我的客户需要,所以刷新后,我需要复制/粘贴新工作簿中的前两张,保存在一般位置客户选择它的地方。我已经添加了我认为很好的代码来执行此复制/粘贴,但不幸的是,我在复制/粘贴部分以及SaveAs部分中遇到错误。我在这里和“powershell.org”做了一些研究,但找不到任何有用的东西:(。
这是我的代码:
Measure-Command {
$excel = new-object -comobject excel.application
$excel.DisplayAlerts = $false
$excelFiles = Get-ChildItem -Path "Network folder location" -Include *.xls, *.xlsm,*.xlsx, *.lnk -Recurse
Foreach($file in $excelFiles) {
$workbook = $excel.workbooks.open($file.fullname)
foreach ($Conn in $workbook.Connections){
$Conn.OLEDBConnection.BackgroundQuery = $false
$Conn.refresh()
}
$workBook.RefreshAll()
$workbook.save()
$wb2 = $excel.Workbooks.Add()
$sheetToCopy = $workbook.sheets.item(1),$workbook.sheets.item(2) #Source
$sheetToCopy.CopyTo($wb2) #Destination
$filename = $wb2.Sheets.Item(2).Cells.Item(4,2) #Destination file, 2nd sheet, column D row 2 has what I want to call the file (RVP John Doe - Dashboard)
$wb2.SavesAs("Networkfolder\$filename.xlsx")
$workbook.close()
$wb2.close()
}
$excel.quit()
}