Я новичок в кодировании макросов. Я много тянул с этого сайта, чтобы ускорить скорость, и это помогло тонну.Создание 5 отчетов из пяти верхних строк отфильтрованной таблицы
Я пытаюсь создать один отчет для каждой строки данных для пяти верхних строк видимых данных в отфильтрованной таблице. Я видел несколько похожих примеров, но я не понял, как их интегрировать в функционирующий продукт. Помогите мне разобраться с последним препятствием.
В моей таблице есть строка заголовка из A2: T2, поэтому мне нужно вытащить из пяти строк под заголовком, используя xlCellTypeVisible, поэтому выбираются только видимые строки. Длина таблицы меняется ежедневно, но она никогда не короче 150 строк.
Вот код данных Я пытаюсь создать новый лист, и вытащить из первой строки таблицы:
' Create new sheet for report
Sheets.Add After:=Sheets(Sheets.Count)
' Add Part number, Description & Company to header
' Part Number
Sheets("Variance Data").Range("K3").Copy Destination:=ActiveSheet.Range("A2")
Range("A2").Select
Selection.Font.Bold = True
' Part description
Sheets("Variance Data").Range("L3").Copy Destination:=ActiveSheet.Range("A3")
' Customer
Sheets("Variance Data").Range("G3").Copy Destination:=ActiveSheet.Range("F3")
' Add info from Variance Data tab
' Work Center
Sheets("Variance Data").Range("C3").Copy Destination:=ActiveSheet.Range("A6")
' Work Order
Sheets("Variance Data").Range("H3").Copy Destination:=ActiveSheet.Range("C6")
' Task
Sheets("Variance Data").Range("D3").Copy Destination:=ActiveSheet.Range("D6")
' Seq #
Sheets("Variance Data").Range("I3").Copy Destination:=ActiveSheet.Range("E6")
' Qty
Sheets("Variance Data").Range("M3").Copy Destination:=ActiveSheet.Range("F6")
' Est Hrs
Sheets("Variance Data").Range("O3").Copy Destination:=ActiveSheet.Range("B8")
' Act. Hrs
Sheets("Variance Data").Range("Q3").Copy Destination:=ActiveSheet.Range("B9")
' Var. Hrs
Sheets("Variance Data").Range("S3").Copy Destination:=ActiveSheet.Range("B10")
' Est Cost
Sheets("Variance Data").Range("P3").Copy Destination:=ActiveSheet.Range("E8")
' Act. Cost
Sheets("Variance Data").Range("R3").Copy Destination:=ActiveSheet.Range("E9")
' Var. Cost
Sheets("Variance Data").Range("T3").Copy Destination:=ActiveSheet.Range("E10")
ActiveSheet.Name = Range("A2").Value
Как изменить это, так что я петля это, чтобы создать пять листов, один для каждой строки данных из основного листа данных под названием «Данные дисперсии» и заполнения нового листа?
Благодарим за помощь!
Спасибо! Я попробую и посмотрю, смогу ли я заставить его работать. –
На самом деле я забыл важную часть кода, чтобы он работал правильно для скрытых строк, я сменил код на: v_data = .Range ("a3: t" и thelastrow) на v_data = .Range ("a3: t" & thelastrow) .SpecialCells (xlCellTypeVisible) –
Я занят другим крупным проектом, но я попробую код как можно скорее. Есть ли причина, по которой вы используете Option Explicit и делаете sub private? –