Обновить формулу Excel в книге другого человека - PullRequest
0 голосов
/ 24 апреля 2020

Кто-нибудь знает, как обновить формулу Excel на чьей-либо книге Excel? Проблема здесь в том, что используются сотни книг одного и того же типа, и одна и та же формула неверна во всех версиях, и каждая книга имеет уникальное имя. Многие из этих пользователей не очень опытны. Я смотрю, могу ли я написать что-то, что они могут запустить на своем компьютере после того, как они откроют электронную таблицу для обновления формулы. Спасибо.

Из этого AN9 = СУММА (Y23: Y24, X79, Y84: Y85 / SUM (X23: X24, Y79, X84: X85 )

к этому AN9 = СУММА (Y23: Y24, X79, Y84: Y105 / SUM (X23: X24, Y79, X84: X105 )

1 Ответ

0 голосов
/ 27 апреля 2020

Я могу предложить этот скрипт 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

Скрипт PS1

Что делает скрипт:

Он заменяет спецификацию c формула Обратите внимание, что замена не указана для ячейки c (ячейка AN9). Я предположил, что формула появляется только 1 раз на листе.

Если замена должна быть абсолютно специфичной для ячейки c (в случае, если «неправильная формула» все еще должна существовать в другом месте на том же листе ), мы можем исправить код позже.

Скрипт поддерживает любую книгу независимо от ее имени. Он также поддерживает несколько листов. Таким образом, где бы формула не была найдена, она будет заменена (лист 1, лист 2, лист 3, лист 4, mysheet, sales, ...)

Как ее использовать:

1 . Поместите файл .xlsx в папку по вашему выбору. В папке должен быть ТОЛЬКО один файл .xlsx, который вы хотите исправить. 2. Поместите скрипт .ps1 в ту же папку. 3.Нажмите правой кнопкой мыши на сценарии .ps1, затем «Выполнить с помощью Powershell».

Будет создан новый файл: «new.xlsx»

Прочее:

I необходимо исправить формулу Excel (отсутствует ")"). Я надеюсь, что это правильно. Я не уверен на 100%, что скрипт будет выполнен без прав администратора. Даже с этим обходом политики освобождения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...