Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 需要帮助获取powershell删除单元格内容并插入公式吗_Excel_Powershell - Fatal编程技术网

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)”