Excel 需要帮助获取powershell删除单元格内容并插入公式吗
这是它所在的脚本Excel 需要帮助获取powershell删除单元格内容并插入公式吗,excel,powershell,Excel,Powershell,这是它所在的脚本$of设置为使用wget下载的文件名。我从HRESULT:0x0800A03EC中得到异常,它与范围部分有关,并且它看到一个基于0的范围,但我给它2:#行 如何让PowerShell清除范围,然后插入公式 #open the downloaded worksheet $Excel = New-Object -Com Excel.Application $Workbook = $Excel.Workbooks.Open($of) $page = 'Project Summary'
$of
设置为使用wget
下载的文件名。我从HRESULT:0x0800A03EC
中得到异常,它与范围部分有关,并且它看到一个基于0的范围,但我给它2:#行
如何让PowerShell清除范围,然后插入公式
#open the downloaded worksheet
$Excel = New-Object -Com Excel.Application
$Workbook = $Excel.Workbooks.Open($of)
$page = 'Project Summary'
$ws = $Workbook.Worksheets | Where-Object {$_.Name -eq $page}
# Set variables for the worksheet cells, and for navigation
$cells = $ws.Cells
$row = 1
$col = 5
# Add the header to the worksheet
$headers = "Region"
$headers | foreach {
$cells.Item($row, $col) = $_
}
# Add the formula to each occupied row
$rows = $worksheet.UsedRange.Rows.Count
$ws.Range("E2:E" + $rows).Clear()
$ws.Range("E2:E" + $rows).Formula = "=SUM(E2:E5)"
$Excel.Visible = $true
$Excel.DisplayAlerts = $false
$Excel.ActiveWorkbook.SaveAs('W:\test.xlsx')
我也试过了
$rows | foreach {
$ws.Cells("E" + $rows).Clear()
$ws.Cells("E" + $rows).Formula = "=SUM(E2:E5)"
}
这给了我一个不在预期误差范围内的值
如何使其清除范围E2:E
中的每个单元格,然后插入公式
在找到一种使用@'逃避整个公式的方法之后,我又回到了下面的内容@代码>;我先前的转义序列中显然有一个错误,但是下面的代码也没有完全按照预期执行
$ws.Range("E2:E$rows").Clear();
$ws.Range("E2:E$rows").Formula = $Formula1
这现在填充了公式,但它以文本形式出现,而不是以公式形式出现;我必须解决这个问题
#open the downloaded worksheet
$Excel = New-Object -Com Excel.Application
$Workbook = $Excel.Workbooks.Open($of)
$page = 'Project Summary'
$ws = $Workbook.Worksheets | Where-Object {$_.Name -eq $page}
# Set variables for the worksheet cells, and for navigation
$cells = $ws.Cells
$row = 1
$col = 5
# Add the header to the worksheet
$headers = "Region"
#open the downloaded worksheet
$excel = New-Object -Com Excel.Application
$Workbook = $Excel.Workbooks.Open($of)
$page = 'Project Summary'
$ws = $Workbook.worksheets | where-object {$_.Name -eq $page}
$Formula1 = @"
=SUM(E2:E5)
"@
$cells=$ws.Cells
$row=1
$col=5
$range = $ws.UsedRange
$rows = $range.Rows.Count
$ws.Range("E2:E$rows").Clear();
$ws.Range("E2:E$rows").Formula = $Formula1
# Add the header to the worksheet
$headers = "Region"
$headers | foreach {
$cells.item($row, $col) = $_
}
$excel.visible = $true
$excel.DisplayAlerts = $False
$excel.ActiveWorkbook.SaveAs('W:\Test.xlsx')
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
Remove-Item $of
这就是结果。逃跑可能是也可能不是最初的问题,但这里的帮助引导我找到了更好的方法来处理它,如果它是问题的话。我仍然没有解决为什么循环会给出值错误,但这是可行的,所以我还不必解决这个问题;这是下一个脚本,这篇文章也将帮助我
这就是结果。逃跑可能是也可能不是最初的问题,但这里的帮助引导我找到了更好的方法来处理它,如果它是问题的话。我仍然没有解决为什么循环会给出值错误,但这是可行的,所以我还不必解决这个问题;这是这篇文章还将帮助我完成的下一个脚本。您打算更改多少单元格。您尝试过的代码将尝试更改一个。您正在尝试循环遍历列E中所有使用的行吗?您听说过吗?ws.Cells.Item(2,5).Formula
这里的另一个问题尝试了以下方法来更改单元格公式。我打算将所有单元格从E2更改为E中最后一行使用的行。不,从未听说过PSExcel。2..$rows| ForEach{$ws.Cells.Item(“E$”)。清除吗(;$ws.cells.item(“E$”).Formula=“=SUM(E2:E5)”}
有许多单元格要更改。您尝试过的代码将尝试更改一个。您是否尝试循环遍历列E中所有使用过的行?您听说过吗?$ws.cells.item(2,5).Formula
此处的另一个问题尝试了以下更改单元格公式。我打算更改从E2到E中使用的最后一行的所有单元格。否,从未听说过PSExcel。如何2..$rows | ForEach{$ws.cells.item(“E$|”).Clear();$ws.cells.item(“E$|”).Formula=“=SUM(E2:E5)”