Microsoft Excel: формула, генерирующая строковое содержимое и двойные кавычки - PullRequest
1 голос
/ 22 апреля 2020

Microsoft Excel: формула, которая генерирует содержимое строки, и двойные кавычки

Я создаю содержимое пакетного файла в Microsoft Excel. Затем я копирую команды в файл .BAT и запускаю файл .BAT.

С каждой строкой в ​​файле Excel я генерирую набор команд BATCH, которые в настоящее время разделены символом "&" ... совершенно корректно. Например,

Формула:

="@ECHO OFF&cd \users\imemine\&"&"""C:\Program Files (x86)\program\program.exe"" -parameter1 -parameter2 """&A1&""""&"&echo.message"

Вывод:

@ECHO OFF&cd \users\imemine\&"C:\Program Files (x86)\program\program.exe" -parameter - parameter2 "string"&echo.message

Просто из соображений эстетики c, я хотел бы заменить "&" с символом новой строки и каждой командой BATCH в отдельной строке.

Итак, я попытался заменить формулу «&» в Excel на char (10). Я также попробовал символ Alt-Enter в формуле.

Но вывод, который я получаю, содержит ненужные символы двойной кавычки. Например:

"@ECHO OFF&
cd \users\imemine\&""C:\Program Files (x86)\program\program.exe"" -parameter -parameter2 ""string""&echo.message"

Что мне делать?

Мне бы хотелось что-то подобное, когда я копирую результат формулы Excel в файл BATCH:

@ECHO OFF
cd \users\imemine\
"C:\Program Files (x86)\program\program.exe" -parameter - parameter2 "string"
echo.message

Спасибо, Джоанна

1 Ответ

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

Я не уверен, что это возможно с формулами. Мы можем использовать в качестве обходного пути прямоугольную форму + [фрагмент макроса] (обязательно, но копирование из формы утомительно)

1.Используйте ЗАМЕНИТЕЛЯ для замены "&" в командной строке.

=SUBSTITUTE(B4,"&",CHAR(10))

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

=$B$7

3. Вставьте макрос. Microsoft Forms 2.0 активирован.

Sub ShapeCb()
Dim obj As New DataObject
Dim strText As String
strText = ActiveSheet.Shapes("Rectangle 1").TextFrame.Characters.Text
obj.SetText strText
obj.PutInClipboard
End Sub

Лист: cmd

Вывод после вставки копии: Output

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