在其他人的工作簿上更新Excel公式

问题描述 投票:0回答:1

有人知道如何更新某人的Excel工作簿上的Excel公式吗?这里的问题是使用了上百种相同类型的工作簿,并且在所有版本上相同的公式均不正确,并且每个工作簿都有唯一的名称。这些用户中许多都不是精通Excel的人。我正在查看我是否可以写一些东西,让他们在打开电子表格以更新公式后可以在计算机上启动。谢谢。

从此AN9= SUM(Y23:Y24,X79,Y84:Y85 /SUM(X23:X24,Y79,X84:X85

对此AN9= SUM(Y23:Y24,X79,Y84:Y105 /SUM(X23:X24,Y79,X84:X105

vba excel-formula
1个回答
0
投票

我可以提出这个powershell脚本:

$EXECUTIONPOLICY = Get-ExecutionPolicy
Set-Executionpolicy -Scope CurrentUser -ExecutionPolicy Bypass
$old='SUM(Y23:Y24,X79,Y84:Y85)/ SUM(X23:X24,Y79,X84:X85)'
$new='SUM(Y23:Y24,X79,Y84:Y85)/ SUM(X23:X24,Y79,X84:X105)'
Get-ChildItem ".\*.xlsx" | Copy-Item -Destination "excel.zip"
Expand-Archive excel.zip -DestinationPath excel
Get-Item ".\excel\xl\worksheets\*.xml"| ForEach {(Get-Content -Path $_.FullName).Replace($old,$new) | Set-Content -Path $_.FullName}
Compress-Archive -Path ".\excel\*" -DestinationPath excel -Force
Rename-Item "excel.zip" -NewName "new.xlsx"
Remove-Item excel -Recurse
Set-ExecutionPolicy $EXECUTIONPOLICY

Script PS1

脚本的作用:

它将替换特定的公式。请注意,该替换不是特定于单元的(单元AN9)。我假设该公式每张纸只出现1次。

如果替换绝对需要特定于单元格(如果在同一张纸上的其他地方仍然存在“错误公式”的情况,我们可以稍后修复代码。

该脚本支持任何工作簿,无论其名称如何。它还支持多张纸。因此,在找到该公式的任何地方,都将替换该公式(工作表1,工作表2,工作表3,工作表4,我的工作表,销售...)

如何使用它:

1。将.xlsx文件放入您选择的文件夹中。文件夹中只能有一个.xlsx文件,即您要修复的文件。2.将.ps1脚本放在同一文件夹中。3.右键单击.ps1脚本,然后单击“使用Powershell运行”。

创建一个新文件:“ new.xlsx”

其他:

我必须修正您的Excel公式(缺少“)”)。我希望这是正确的。我不是100%肯定会在没有管理员权限的情况下执行脚本。即使绕过此执行策略。

© www.soinside.com 2019 - 2024. All rights reserved.