Отпечатване на данни от различни листове с помощта на VBA в Microsoft Excel

Anonim

В тази статия ще създадем макрос за отпечатване на данни от различни листове.

Имаме различни необработени данни в два листа и искаме да персонализираме разпечатването от тези листове.

Преди да стартираме макроса, трябва да посочим вида на разпечатката и да посочим името, обхвата или персонализирания изглед.

Създадохме персонализиран изглед „customView1“.

Логично обяснение

Създадохме макрос “PrintReports” за персонализиран печат. Този макрос ще се върти от клетка A13 до последния ред. Можем да посочим три различни типа за персонализиран печат.

За тип 1 трябва да посочим името на листа в следващата колона.

За тип 2 трябва да посочим диапазона, за който искаме разпечатването.

За тип 3 трябва да посочим името на персонализирания изглед.

Обяснение на кода

За всяка клетка 1 в обхвата ("A13", ActiveCell.End (xlDown))

Горният код се използва за цикъл, започвайки от клетка A13 до последния ред.

DefinedName = ActiveCell.Offset (0, 1) .Value

Горният код се използва за получаване на стойността от клетка в следващата колона от активната клетка.

Изберете Case Cell 1. Value

Случай 1

'Избиране на дефинирания лист

Листове (DefinedName) .Изберете

Случай 2

'Избиране на определения диапазон

Application.Goto Reference: = DefinedName

Случай 3

'Избиране на дефинирания персонализиран изглед

ActiveWorkbook.CustomViews (DefinedName) .Show

Край Изберете

Горният оператор Select се използва за избор на посочената област въз основа на типа, определен от потребителя.

ActiveWindow.SelectedSheets.PrintOut

Горният код се използва за отпечатване на избраната област.

Моля, следвайте кода по -долу

 Опция Explicit Sub PrintReports () „Обявени променливи Dim DefinedName As String Dim Cell1 As Range„ Деактивиране на актуализациите на екрана Application.ScreenUpdating = False “Циклично преминаване през всички клетки за всяка клетка1 в диапазон („ A13 “, ActiveCell.End (xlDown)) ("Основен"). Активирайте 'Избиране на клетка Клетка 1. Изберете' Получаване на стойност на името на листа или дефиниран диапазон DefinedName = ActiveCell.Offset (0, 1). Value Select Case Cell1.Value Case 1 'Избор на дефинираните листове на листа (DefinedName ). Изберете случай 2 "Избор на дефиниран диапазон Приложение. Отидете на справка: = Дефинирано име Случай 3" Избор на дефинирания персонализиран изглед ActiveWorkbook.CustomViews (DefinedName). Показване на край Изберете "Отпечатване на необходимите данни ActiveWindow.SelectedSheets.PrintOut Следващо приложение.ScreenUpdating = True End Sub 

Ако този блог ви е харесал, споделете го с приятелите си във Facebook. Също така можете да ни следвате в Twitter и Facebook.

Ще се радваме да чуем от вас, уведомете ни как можем да подобрим работата си и да я направим по -добра за вас. Пишете ни на имейл сайта