Показать полную графическую версию : Ошибка VBS 800A0401
belohortvladimir
09-12-2013, 13:50
Здравствуйте! Такая проблема, есть код скрипта
Sub ListDocNamesInFolder()
Dim sMyDir As String
Dim sDocName As String
sMyDir = "C:\print\"
sDocName = Dir(sMyDir & "*.doc")
While sDocName <> ""
Application.PrintOut Range:=wdPrintRangeOfPages, Pages:="2,4-6", FileName:=sMyDir & sDocName
sDocName = Dir()
Wend
End Sub
Запуская Word нажимая Alt+F11 запускается Microsoft Visual Basic вставляю его туда запускаю все пашет.
Вставляю этот код в блокнот и сохраняю с расширение vbs при запуске выдает ошибку.
Сценарий: C:\print\1.vbs
Строка: 2
Символ: 14
Ошибка: Предполагается наличие окончания инструкции
Код: 800A0401
Источник: Ошибка компиляции Microsoft VBScript
Вопрос: как сделать так чтобы работало не только из Microsoft Visual Basic, но и из файла vbs
belohortvladimir, WSH не VBA.
Option Explicit
Const wdPrintRangeOfPages = 4
Dim strSourceFolder
Dim objFile
Dim objWord
strSourceFolder = "C:\print"
With WScript.CreateObject("Scripting.FileSystemObject")
If .FolderExists(strSourceFolder) Then
Set objWord = Nothing
For Each objFile In .GetFolder(strSourceFolder).Files
If LCase(.GetExtensionName(objFile.Name)) = "doc" Then
If objWord Is Nothing Then
Set objWord = WScript.CreateObject("Word.Application")
objWord.Documents.Add
End If
objWord.PrintOut False, , wdPrintRangeOfPages, , , , , , "2,4-6", , , , objFile.Path
End If
Next
If Not objWord Is Nothing Then
objWord.Quit
Set objWord = Nothing
End If
Else
WScript.Echo "Source folder [" & strSourceFolder & "] not found."
End If
End With
WScript.Quit 0
belohortvladimir
09-12-2013, 15:14
Iska »
То что ты написал я скопировал и сохранил в текстовом файле с расширением wsh и при запуске пишет ошибку (Сценарий не указан) и все.
Что может быть сейчас не так?
и сохранил в текстовом файле с расширением wsh »
«.vbs».
«.wsh» — это файл описания скрипта, наподобие:
[ScriptFile]
Path=E:\Песочница\0335\0001.vbs
[Options]
Timeout=5
DisplayLogo=1
Он Вам не нужен.
belohortvladimir
10-12-2013, 08:44
Iska » Поменял расширение на vbs запустил выдало опять ошибку. Думаю наверно что то с выполнениями скриптов на ПК. собрался писать запустил еще раз чтобы переписать ошибку и в этот раз все пошло :)) СПАСИБО БОЛЬШОЕ!!!!!
Теперь если не сложно можешь объяснить эту строчку (objWord.PrintOut False, , wdPrintRangeOfPages, , , , , , "2,4-6", , , , objFile.Path) цифры что они обозначают. И еще в том коде что ты предложил заменим objWord на objExcel и запуская скрипт вываливает ошибку на (Documents)
Сценарий: C:\print\1.vbs
Строка: 20
Символ: 6
Ошибка: Объект не поддерживает это свойство или метод: 'Documents'
Код: 800A01B6
Источник: Ошибка компиляции Microsoft VBScript
Теперь если не сложно можешь объяснить эту строчку (objWord.PrintOut False, , wdPrintRangeOfPages, , , , , , "2,4-6", , , , objFile.Path) цифры что они обозначают. »
PrintOut Method (http://msdn.microsoft.com/en-us/library/office/aa220363(v=office.11).aspx)
Application.PrintOut Method (Word) (http://msdn.microsoft.com/en-us/library/office/ff840681.aspx)
Цифры обозначают страницы. Я взял их непосредственно из Вашего кода (http://forum.oszone.net/post-2269310.html#post2269310).
И еще в том коде что ты предложил заменим objWord на objExcel и запуская скрипт вываливает ошибку на (Documents) »
Что Вас удивляет? Что объектные модели Word и Excel отличаются?
belohortvladimir
10-12-2013, 14:55
(objWord.PrintOut False, , wdPrintRangeOfPages, , , , , , "2,4-6", , , , objFile.Path) » ну насколько я понимаю то что написано говорит напечатать 2,4,5,6 все остальное не печатать. Чтобы печатало весь документ вот так должно выглядеть (objWord.PrintOut False, , , , , , , , , , , , objFile.Path).
belohortvladimir
12-12-2013, 09:13
Iska » Я тебе в ПМ написал.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.