Доброго времени суток, уважаемые форумчане. Недавно я задавал вопрос на данном форуме о массовой печати книг, первых листов, спасибо огромное кто помогал в решении вопроса. Делался он по началу на эн-ное кол-во раз, но он оказался очень удобным. Было решено его облагородить. Заносить в форму адреса, нименование листов при уловии если их печатать, если нет то первый лист книги, копии и т.п. Создал форму со всеми данными - но не могу получить данные с форм - подсвечиваются ошибки. Как работать с водимыми данными? В частности подсвечиваетя эта строка [vba]
Код
MyPath = TextBox1.Text & "\" ' Папка, из которой печатаем
[/vba] Далее возможно тоже криво но далее не высветиться ошибки - пока не решу с первым....
Доброго времени суток, уважаемые форумчане. Недавно я задавал вопрос на данном форуме о массовой печати книг, первых листов, спасибо огромное кто помогал в решении вопроса. Делался он по началу на эн-ное кол-во раз, но он оказался очень удобным. Было решено его облагородить. Заносить в форму адреса, нименование листов при уловии если их печатать, если нет то первый лист книги, копии и т.п. Создал форму со всеми данными - но не могу получить данные с форм - подсвечиваются ошибки. Как работать с водимыми данными? В частности подсвечиваетя эта строка [vba]
Код
MyPath = TextBox1.Text & "\" ' Папка, из которой печатаем
[/vba] Далее возможно тоже криво но далее не высветиться ошибки - пока не решу с первым.... televnoy
televnoy, Потому что модуль1, модуль2 и тд, не знают об объектах формы. Можно попробовать [vba]
Код
Userform1.Textbox1.text&"\"
[/vba] Но мне кажется, что лучше сами функции сделать с аргументами, типа такого: [vba]
Код
Sub Печать_1_го_лист_из_папки(s As String, s2 As String, s3 as String) Dim MyPath$, MyFileName$, bk As Workbook Application.ScreenUpdating = False MyPath = s & "\" ' Папка, из которой печатаем MyFileName = Dir(MyPath & s2) Do While MyFileName <> "" If Left$(MyFileName, 2) <> "~$" Then ' Исключаем временные файлы Excel Set bk = Workbooks.Open(Filename:=MyPath & MyFileName, UpdateLinks:=False, ReadOnly:=True) bk.Worksheets(1).PrintOut Copies:=s3 bk.Close SaveChanges:=False End If MyFileName = Dir Loop Application.ScreenUpdating = True MsgBox "Готово!", vbInformation End Sub
[/vba] А в юзерформе передавать значения этих аргументов в функцию...
televnoy, Потому что модуль1, модуль2 и тд, не знают об объектах формы. Можно попробовать [vba]
Код
Userform1.Textbox1.text&"\"
[/vba] Но мне кажется, что лучше сами функции сделать с аргументами, типа такого: [vba]
Код
Sub Печать_1_го_лист_из_папки(s As String, s2 As String, s3 as String) Dim MyPath$, MyFileName$, bk As Workbook Application.ScreenUpdating = False MyPath = s & "\" ' Папка, из которой печатаем MyFileName = Dir(MyPath & s2) Do While MyFileName <> "" If Left$(MyFileName, 2) <> "~$" Then ' Исключаем временные файлы Excel Set bk = Workbooks.Open(Filename:=MyPath & MyFileName, UpdateLinks:=False, ReadOnly:=True) bk.Worksheets(1).PrintOut Copies:=s3 bk.Close SaveChanges:=False End If MyFileName = Dir Loop Application.ScreenUpdating = True MsgBox "Готово!", vbInformation End Sub
[/vba] А в юзерформе передавать значения этих аргументов в функцию...Roman777
Апострофф, Roman777, Спасибеще - Userform1.Textbox1. и т.п. оказалось достаточно. Roman777, согласен скорее всего лучше так, но я с таким маленьким вопросом застрял =)
Спасибо еще раз + с меня
Апострофф, Roman777, Спасибеще - Userform1.Textbox1. и т.п. оказалось достаточно. Roman777, согласен скорее всего лучше так, но я с таким маленьким вопросом застрял =)