|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - макрос excel |
|
|
VBA - макрос excel
|
Старожил Сообщения: 284 |
Профиль | Отправить PM | Цитировать
нужен простой макрос. в документ excel удалить два логотипа организации, уместить для печати на 1 страницу документ, сохранить и напечатать 3 копии.
Можно ли как то его применить для всех документов в конкретной папке, есть много папок по разным торг.точкам, но документ одинаковый и в каждой папке по 20-50 документов. чтобы каждый не открывать и не проделывать это все. Пробовал записать макрос нажав на "Запись", вот такой код вышел Sub лямина2() ' ' лямина2 Макрос ' ' Сочетание клавиш: Ctrl+l ' Range("H4:I7").Select Selection.ClearContents ActiveSheet.Shapes.Range(Array("Picture -767")).Select Selection.Delete Application.PrintCommunication = False With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.236220472440945) .RightMargin = Application.InchesToPoints(0.236220472440945) .TopMargin = Application.InchesToPoints(0.393700787401575) .BottomMargin = Application.InchesToPoints(0.393700787401575) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .PrintQuality = 600 .CenterHorizontally = False .CenterVertically = False .Orientation = xlPortrait .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 .PrintErrors = xlPrintErrorsDisplayed .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = False .EvenPage.LeftHeader.Text = "" .EvenPage.CenterHeader.Text = "" .EvenPage.RightHeader.Text = "" .EvenPage.LeftFooter.Text = "" .EvenPage.CenterFooter.Text = "" .EvenPage.RightFooter.Text = "" .FirstPage.LeftHeader.Text = "" .FirstPage.CenterHeader.Text = "" .FirstPage.RightHeader.Text = "" .FirstPage.LeftFooter.Text = "" .FirstPage.CenterFooter.Text = "" .FirstPage.RightFooter.Text = "" End With Application.PrintCommunication = True ActiveWindow.SelectedSheets.PrintPreview ActiveWorkbook.Save ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True, _ IgnorePrintAreas:=False End Sub |
|
Отправлено: 13:17, 01-07-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Maza11, упакуйте пару-тройку образцов документов в архив, прикрепите последний к сообщению или выложите на RGhost.
|
Отправлено: 13:22, 01-07-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать делал все через менюшки и выставлял уместить для печати на 1 страницу документ через предварительный просмотр - параметры страницы - разместить на 1 странице,
и при срабатывании макроса. он останавливается на окне предварительного просмотра |
Отправлено: 13:22, 01-07-2015 | #3 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать прикрепил образцы
|
Отправлено: 13:25, 01-07-2015 | #4 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать нужно наверное еще два варианта в одном уместить по ширине на 1 страницу, в другом на 1 страницу и по ширине и высоте (чтобы фамилии и подписи не переносило на новый лист)
|
|
Отправлено: 13:34, 01-07-2015 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:49, 01-07-2015 | #6 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Цитата Iska:
, я вижу в выложенных документах только один рисунок на документ: » под ним строка %!25 это тоже удалить Цитата Iska: Надо полагать, Вы хотели сказать — по ширине на одну страницу? » да. Просто внезапно озадачили. в спешке писал делаю сейчас так печатает, без лишних окон, но приходится открывать каждый документ, нажимать "Ctrl + L", закрывать и так далее вот этот момент можно оптимизировать ? Sub лямина2() ' ' лямина2 Макрос ' ' Сочетание клавиш: Ctrl+l ' Range("H4:I7").Select Selection.ClearContents ActiveSheet.Shapes.Range(Array("Picture -767")).Select Selection.Delete Application.PrintCommunication = False With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.236220472440945) .RightMargin = Application.InchesToPoints(0.236220472440945) .TopMargin = Application.InchesToPoints(0.393700787401575) .BottomMargin = Application.InchesToPoints(0.393700787401575) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .PrintQuality = 600 .CenterHorizontally = False .CenterVertically = False .Orientation = xlPortrait .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 .PrintErrors = xlPrintErrorsDisplayed .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = False .EvenPage.LeftHeader.Text = "" .EvenPage.CenterHeader.Text = "" .EvenPage.RightHeader.Text = "" .EvenPage.LeftFooter.Text = "" .EvenPage.CenterFooter.Text = "" .EvenPage.RightFooter.Text = "" .FirstPage.LeftHeader.Text = "" .FirstPage.CenterHeader.Text = "" .FirstPage.RightHeader.Text = "" .FirstPage.LeftFooter.Text = "" .FirstPage.CenterFooter.Text = "" .FirstPage.RightFooter.Text = "" End With Application.PrintCommunication = True ActiveWorkbook.Save ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True, _ IgnorePrintAreas:=False End Sub |
Отправлено: 14:08, 01-07-2015 | #7 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать это еще не все оказалось, внизу строка есть
Цитата:
|
|
Отправлено: 14:29, 01-07-2015 | #8 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать думаю надо макросом удалять строку содержащую "Автор друку: ..." и строку перед ней, т.к. там какая то дурацкая строка идет высотой 300-400.
Это возможно ??? |
Отправлено: 16:02, 01-07-2015 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Примерно так (WSH, VBScript):
Скрытый текст
Option Explicit Dim strSourceFolder Dim objFile Dim objExcel If WScript.Arguments.Count = 1 Then strSourceFolder = WScript.Arguments.Item(0) With WScript.CreateObject("Scripting.FileSystemObject") If .FolderExists(strSourceFolder) Then Set objExcel = Nothing For Each objFile In .GetFolder(strSourceFolder).Files Select Case LCase(.GetExtensionName(objFile.Name)) Case "xls", "xlsx" If objExcel Is Nothing Then Set objExcel = WScript.CreateObject("Excel.Application") End If WScript.Echo objFile.Path With objExcel With .Workbooks.Open(objFile.Path) With .Worksheets.Item(1) .Shapes.Item("Picture -767").Delete .Range("H4:I6").Select objExcel.Selection.ClearContents .Range("A1").Select objExcel.Union(.Rows(.UsedRange.Rows.Count).EntireRow, .Rows(.UsedRange.Rows.Count -1).EntireRow).Delete .PageSetup.FitToPagesWide = 1 .PrintOut ,, 3 End With .Save .Close End With End With Case Else ' Nothing to do End Select Next If Not objExcel Is Nothing Then Set objExcel = WScript.CreateObject("Excel.Application") End If Else WScript.Echo "Can't find source folder [" & strSourceFolder & "]." WScript.Quit 2 End If End with Else WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source folder>" WScript.Quit 1 End If WScript.Quit 0 Целевая папка указывается параметром скрипта (также можно просто перетащить папку на скрипт в Проводнике). |
Отправлено: 16:42, 01-07-2015 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBA - Помогите написать макрос в Excel, экспорт данных из Excel в Word. | E.v.g | Программирование и базы данных | 7 | 03-05-2018 22:18 | |
VBS/WSH/JS - исправить макрос excel | oleg-sm | Скриптовые языки администрирования Windows | 1 | 09-08-2013 19:01 | |
VBA - [решено] Макрос excel | neo21 | Программирование и базы данных | 4 | 06-03-2012 22:04 | |
Разное - Макрос Excel. | KiriJolit | Microsoft Office (Word, Excel, Outlook и т.д.) | 0 | 02-12-2010 23:19 | |
Макрос Excel работает после перезагрузки :( | Guest | Программирование и базы данных | 1 | 11-05-2004 08:43 |
|