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

Вот как я это использовал objExcel.Application.Run "'"C:\Users\account\Desktop\test Folder\vbsExcel.xlsm"'!test.getValue", но получаю

ожидаемый конец заявления

Как ошибку. Думаю, я неправильно его использовал.

Пример пути

objExcel.Application.Run "'C:\Users\account\Desktop\test Folder\vbsExcel.xlsm'!test.getValue"

Рабочий путь - удалите пробел в имени папки

objExcel.Application.Run "'"C:\Users\account\Desktop\testFolder\vbsExcel.xlsm"'!test.getValue"

< Сильный > Пробовал

objExcel.Application.Run "'C:\Users\account\Desktop\test" + " " + "Folder\vbsExcel.xlsm'!test.getValue"

То, что я пробовал, частично работает, потому что vbs действительно запускает макрос. Однако файл Excel открывается и работает только при включении макроса. (то же самое происходит при запуске с использованием примера пути)

Моя конечная цель - запустить макрос в Excel без открытия файла Excel , используя Пример пути . (просто означает наличие места в именах файлов)

Полный сценарий

Set objExcel = CreateObject("Excel.Application")
objExcel.Application.Run "'C:\Users\account\Desktop\testFolder\vbsExcel.xlsm'!test.getValue"
objExcel.DisplayAlerts = False
objExcel.Application.Quit
Set objExcel = Nothing
1
Max 2 Янв 2018 в 04:41

2 ответа

Лучший ответ

Нет ничего плохого в расстоянии. Мне удалось решить мою проблему, добавив Application.DisplayAlerts = False в свой макрос.

Это отключит предупреждающее сообщение Включен макрос при запуске vbS.

Это из msdn

Истина, если Microsoft Excel отображает определенные предупреждения и сообщения во время выполнения макроса. Чтение / запись логического значения

1
Max 9 Янв 2018 в 06:22

Читая страницу, на которую вы ссылаетесь, попробуйте следующие варианты:

.Run """'C:\Users\account\Desktop\testFolder\vbsExcel.xlsm'""" & "!test.getValue"

.Run """C:\Path\Filename""" & "!test.getValue"

.Run """'C:\Path\Filename'!test.getValue"""

Это может быть то, о чем они говорят, «заключите путь в двойные кавычки» ... поскольку vba использует следующее:

MsgBox "String" 'Will display: String
MsgBox ""String"" 'Will be in error
MsgBox "" & "String" & "" 'Will display String
MsgBox """String""" 'Will display "String"
MsgBox """"String"""" 'Will be in error
MsgBox """" & "String" & """" 'Will display "String"
-1
Sercho 2 Янв 2018 в 05:25