Для дальнейшего редактирования нужно в ворде открыть последний созданный файл с папки. Подпапки не просматривать. Имя файла имеет маску f000*.rtf Папка с файлами находится на сетевом диске.
Для полного счастья хотелось бы еще, чтобы макрос запускался при двойном клике по иконке на рабочем столе, которая открывает ранее созданный пустой вордовский файл с именем, например start.docx При открытии любого другого вордовского документа макрос не должен выполняться. Т.е. запускаться он может, но никаких действий над открытым документом не должен производить.
Для дальнейшего редактирования нужно в ворде открыть последний созданный файл с папки. Подпапки не просматривать. Имя файла имеет маску f000*.rtf Папка с файлами находится на сетевом диске.
Для полного счастья хотелось бы еще, чтобы макрос запускался при двойном клике по иконке на рабочем столе, которая открывает ранее созданный пустой вордовский файл с именем, например start.docx При открытии любого другого вордовского документа макрос не должен выполняться. Т.е. запускаться он может, но никаких действий над открытым документом не должен производить.SergeyKorotun
Открываю пустой вордовский документ из рабочего стола, вручную запускаю макрос, который открывает еще один документ, производится редктирование второго документа средствами макроса, документ распечатывается, закрывается ипосле этого закрывается первый документ. Все выполняется так, как и было задумано. Изменяю имя процедуры на AutoOpen, при открытии первого документа автоматически открывается второй и скрипт больше ничего не делает (не выполняется редактирование, печать, закрытие). То что скрипт прекращает свое выполнение подтверждается вставкой в макрос команды msgbox, которая ничего не выводит. Почему так?
Открываю пустой вордовский документ из рабочего стола, вручную запускаю макрос, который открывает еще один документ, производится редктирование второго документа средствами макроса, документ распечатывается, закрывается ипосле этого закрывается первый документ. Все выполняется так, как и было задумано. Изменяю имя процедуры на AutoOpen, при открытии первого документа автоматически открывается второй и скрипт больше ничего не делает (не выполняется редактирование, печать, закрытие). То что скрипт прекращает свое выполнение подтверждается вставкой в макрос команды msgbox, которая ничего не выводит. Почему так?SergeyKorotun
Не видя кода/файла можно только предположить: например неаккуратно ссылки прописаны и вместо действий с активной книгой обрабатывает книгу в которой прописан код. Упс, показалось что процедуру в модуль книги перенесли.
Не видя кода/файла можно только предположить: например неаккуратно ссылки прописаны и вместо действий с активной книгой обрабатывает книгу в которой прописан код. Упс, показалось что процедуру в модуль книги перенесли.Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Сообщение отредактировал Udik - Вторник, 29.11.2016, 19:16
и вместо действий с активной книгой обрабатывает книгу в которой прописан код
msgbox, вставленный в код в место после открытия второго файла, не выводит константных сообщений. Отсюда следует, что до открытия второго файла код выполняется, а после - нет.
и вместо действий с активной книгой обрабатывает книгу в которой прописан код
msgbox, вставленный в код в место после открытия второго файла, не выводит константных сообщений. Отсюда следует, что до открытия второго файла код выполняется, а после - нет.
На рабочем столе создан ярлык для файла dov_pro_doh.docx. В этом файле хранится нижеприведенный макрос. При двойном клике на ярлыке макрос автоматически запускается и с сетевого диска открывает последний созданный файл, удовлетворяющий маске f00*.rtf Все это выполняется. Дальше этот файл должен отформатироваться и распечататься, но это не происходит. Окно с открытым файлом f00*.rtf неактивно.
Sub AutoOpen() 'Dovidka_pro_dohodi()
Dim MyFile, MyPath, MyName As String Dim Array_Name() Dim Array_Date()
'MsgBox ("1") 'выход из макроса, если он запущен не из файла dov_pro_doh.docx If ActiveDocument.Name <> "dov_pro_doh.docx" Then End End If 'MsgBox ("2") i = 0 MyPath = "\\Ira\e\drfo\" ' Set the path. MyMaskaFile = "f00*.rtf"
MyName = Dir(MyPath & MyMaskaFile) If MyName <> "" Then myStamp = FileDateTime(MyPath & MyName) End If Do While MyName <> "" ' Start the loop. ReDim Preserve Array_Name(i + 1) ReDim Preserve Array_Date(i + 1) 'MsgBox (MyName) 'MsgBox (MyStamp) Array_Name(i) = MyName Array_Date(i) = myStamp i = i + 1 MyName = Dir() ' Get next entry. If MyName <> "" Then myStamp = FileDateTime(MyPath & MyName) End If Loop
n = 0 ' индекс элемента с наибольшей датой создания файла Date_Time = Array_Date(0) For i = 1 To UBound(Array_Date) If Array_Date(i) > Date_Time Then Date_Time = Array_Date(i) n = i End If Next i
'установка 8 шрифту, книжної орієнтації, полів та друк довідки Selection.WholeStory Selection.Font.Size = 8 If Selection.PageSetup.Orientation = wdOrientPortrait Then Selection.PageSetup.Orientation = wdOrientLandscape Else Selection.PageSetup.Orientation = wdOrientPortrait End If With ActiveDocument.Styles(wdStyleNormal).Font If .NameFarEast = .NameAscii Then .NameAscii = "" End If .NameFarEast = "" End With With ActiveDocument.PageSetup .LineNumbering.Active = False .Orientation = wdOrientPortrait .TopMargin = CentimetersToPoints(0.5) .BottomMargin = CentimetersToPoints(0.5) .LeftMargin = CentimetersToPoints(1) .RightMargin = CentimetersToPoints(0.5) .Gutter = CentimetersToPoints(0) .HeaderDistance = CentimetersToPoints(1.27) .FooterDistance = CentimetersToPoints(1.27) .PageWidth = CentimetersToPoints(21) .PageHeight = CentimetersToPoints(29.7) .FirstPageTray = wdPrinterDefaultBin .OtherPagesTray = wdPrinterDefaultBin .SectionStart = wdSectionNewPage .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .VerticalAlignment = wdAlignVerticalTop .SuppressEndnotes = True .MirrorMargins = False .TwoPagesOnOne = False .BookFoldPrinting = False .BookFoldRevPrinting = False .BookFoldPrintingSheets = 1 .GutterPos = wdGutterPosLeft End With Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentWithMarkup, Copies:=1, Pages:="", PageType:= _ wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _ PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0
'закрыть документ и ворд ActiveDocument.Close False Application.Quit End Sub
На рабочем столе создан ярлык для файла dov_pro_doh.docx. В этом файле хранится нижеприведенный макрос. При двойном клике на ярлыке макрос автоматически запускается и с сетевого диска открывает последний созданный файл, удовлетворяющий маске f00*.rtf Все это выполняется. Дальше этот файл должен отформатироваться и распечататься, но это не происходит. Окно с открытым файлом f00*.rtf неактивно.
Sub AutoOpen() 'Dovidka_pro_dohodi()
Dim MyFile, MyPath, MyName As String Dim Array_Name() Dim Array_Date()
'MsgBox ("1") 'выход из макроса, если он запущен не из файла dov_pro_doh.docx If ActiveDocument.Name <> "dov_pro_doh.docx" Then End End If 'MsgBox ("2") i = 0 MyPath = "\\Ira\e\drfo\" ' Set the path. MyMaskaFile = "f00*.rtf"
MyName = Dir(MyPath & MyMaskaFile) If MyName <> "" Then myStamp = FileDateTime(MyPath & MyName) End If Do While MyName <> "" ' Start the loop. ReDim Preserve Array_Name(i + 1) ReDim Preserve Array_Date(i + 1) 'MsgBox (MyName) 'MsgBox (MyStamp) Array_Name(i) = MyName Array_Date(i) = myStamp i = i + 1 MyName = Dir() ' Get next entry. If MyName <> "" Then myStamp = FileDateTime(MyPath & MyName) End If Loop
n = 0 ' индекс элемента с наибольшей датой создания файла Date_Time = Array_Date(0) For i = 1 To UBound(Array_Date) If Array_Date(i) > Date_Time Then Date_Time = Array_Date(i) n = i End If Next i