Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


fawor1t, не хватает малости — упаковать в архив примеры файлов .xls и .txt, и приложить его к сообщению. Их содержимое важно для понимания работы кода и его отладки.

Цитата fawor1t:
1) При переборе через For Each oFile In oFSO.GetFolder(sFolder).Files , oFile является ли переменной которая содержит имя файла ? »
Свойство .Files класса Folder возвращает коллекцию объектов типа File:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim objFSO
Dim objFolder
Dim objFile

Set objFSO    = WScript.CreateObject("Scripting.FileSystemObject")
WScript.Echo TypeName(objFSO)

Set objFolder = objFSO.GetFolder("c:\")
WScript.Echo TypeName(objFolder)

WScript.Echo TypeName(objFolder.Files)

For Each objFile In objFolder.Files
	WScript.Echo TypeName(objFile)
	
	Exit For
Next

Set objFSO = Nothing

WScript.Quit 0
Цитата:
Код: Выделить весь код
C:\Мои проекты\0098>0003.vbs
FileSystemObject
Folder
Files
File

Кроме того, в VB/VBScript/VBA есть две особенности — неявное преобразование типов и использование свойства по умолчанию. У класса File свойством по умолчанию является свойство .Path (можно посмотреть любым браузером объектов: WSH: браузеры объектов автоматизации (OLE/COM/Automation) — Серый форум). Посему две выделенные строки в таком коде:
Код: Выделить весь код
With WScript.CreateObject("Scripting.FileSystemObject")
	WScript.Echo .GetFile("C:\Windows\System32\notepad.exe").Path
	WScript.Echo .GetFile("C:\Windows\System32\notepad.exe")
End With
дадут один и тот же результат.

Ответ на вопрос — переменная oFile содержит объект типа File.

Цитата fawor1t:
2) Если да,то как использовать значение oFile в пути открытии книги? Workbooks.Open "C:\???.xls" ' »
Код: Выделить весь код
Workbooks.Open oFile.Path
но код надо править: следует запоминать ссылку на открытую методом .Open() Рабочую книгу и работать именно с ней, а не играться в игры с Workbooks(1).

Цитата fawor1t:
4) какой правильный синтаксис указания переменной в пути? & CStr(переменная) верно ли? "U:\ZP\zip\& CStr(переменная) &.zip" »
Смотря что за переменная. Общий принцип:
Код: Выделить весь код
"U:\ZP\zip\" & Переменная & ".zip"
CStr() нужна только для преобразования значения переменной в строковое представление в случае потребности.

Цитата fawor1t:
5) Действительно ли этим var oWshShell = new ActiveXObject("WScript.Shell") можно запустить exe файл с параметрами? »
Можно. Но Вы взяли синтаксис из JScript. Это другой язык.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:05, 12-07-2017 | #2