Я пытаюсь создать программу, которую могут использовать другие люди.В настоящее время мои файлы находятся в каталоге C:\Documents and Settings\jpmccros\Desktop\test
Этот каталог содержит мои macro.xlsm
, names.bat
и другой подкаталог с именем Data
.
Пакетный файл names.bat
делает следующее:
cd data
dir/b/o:n > names.txt
Это именно то, что я хочу.Когда я открываю командный файл (который находится в каталоге C:\Documents and Settings\jpmccros\Desktop\test\
, командная строка MS DOS запускается в C:\Documents and Settings\jpmccros\Desktop\test\
, затем запускает мои команды и делает мой файл names.txt
, и помещает его именно там, где я хочу.
Когда я открываю macro.xlsm
и запускаю macro1, он вызывает пакетный файл для открытия.
Это моя макрос-команда:
Dim names_txt, names_bat, full_name, filename, folder As String
Dim position As Integer
Dim pathcrnt As String
full_name = ThisWorkbook.FullName
filename = ThisWorkbook.Name
position = InStr(1, full_name, filename, 1)
position = position - 1
folder = Left(full_name, position)
names_bat = folder & "names.bat"
Shell names_bat, vbMaximizedFocus
Теперь вот моя проблема:Макрос фактически открывает командный файл, или, по крайней мере, он открывает командную строку MS DOS. Однако, когда он открывает командный файл, начальный каталог:
C:\Documents and settings\jpmccros\My Documents
Мне нужноэтот пакетный файл и макрос должны быть динамическими, поэтому мне нужен пакетный файл, чтобы открыть его каталог отображения. Что с этим происходит? Есть ли команда, которую я могу написать в моем пакетном файле? Это что-то в VBA?