我只是在学习 PowerShell,不幸的是我坚持使用 v2 而不是最新版本。我想要做的是打开 Excel 2010 并选择一个特定的工作表。问题是我无法选择我感兴趣的工作表。这是我的代码:

$objExcel=New-Object -ComObject Excel.Application
$objExcel.Visible=$True
$workbook=$objExcel.Workbooks.Open($excelfile)
$worksheet = $workbook.worksheets | where {$_.name -eq 'AnalysisMain'}
Write-Output "worksheet: $worksheet"

我已验证工作表名称拼写正确,代码对我来说看起来不错,但结果是没有返回任何工作表 - 结果为空。

我哪里出轨了?

最佳答案

在我的测试中:

$objExcel=New-Object -ComObject Excel.Application
$objExcel.Visible=$True
$workbook=$objExcel.Workbooks.Open('C:\\_Stuff\\test.xlsx')
$worksheet = $workbook.worksheets.item('Sheet1')
Write-Output $worksheet.name

产生了预期的输出“Sheet1”

这也有效:
$objExcel=New-Object -ComObject Excel.Application
$objExcel.Visible=$True
$workbook=$objExcel.Workbooks.Open('C:\\_Stuff\\test.xlsx')
$worksheet = $workbook.worksheets | where {$_.name -eq 'Sheet1'}
Write-Output $worksheet.name

你确定你的 $workbook 对象被设置了吗?

关于excel - 无法从 PowerShell 中选择 Excel 工作表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32509078/

10-12 19:55