You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell修改Excel指定行字体为删除线失效问题求助

问题原因及解决办法

问题出在哪

你用Style.Font.Strikethrough修改删除线时,本质是修改了Excel的全局样式属性。默认情况下整个工作表的单元格都应用了这个基础样式,所以一旦修改样式的字体删除线,所有用该样式的单元格都会跟着变化,自然全表都加上了删除线。

正确的做法

跳过Style层级,直接修改目标行/单元格的Font.Strikethrough属性——这是针对单个范围的直接格式设置,不会影响全局样式。

修改后的代码示例:

$Rows = get-content c:\temp\Rrows.txt
foreach($Row in $Rows){
    if ($ExcelWorkSheet2.cells.Item($Row,3).Value() -ne "Something"){
        # 直接给整行设置删除线,仅作用于当前行
        $ExcelWorkSheet2.Rows($Row).Font.Strikethrough = $True

        # 注释掉原来的删行代码
        # $RowToDelete = $ExcelWorkSheet2.Cells.Item($Row,1).EntireRow
        # $RowToDelete.Delete()
    }
}

如果需要只给特定列设置删除线,同样去掉Style:

# 单独设置某几列的删除线
$ExcelWorkSheet2.Cells.Item($Row,1).Font.Strikethrough = $True
$ExcelWorkSheet2.Cells.Item($Row,2).Font.Strikethrough = $True
$ExcelWorkSheet2.Cells.Item($Row,3).Font.Strikethrough = $True

内容的提问来源于stack exchange,提问作者Madim2020

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 05:06:02