現在、私のワークブックにはマスターシートと30枚の個別シートがあります。すべての人物はまったく同じようにフォーマットされ、会社内のさまざまな部門の情報を取得するだけです。 1つのテンプレートワークシートのすべての個々のシートを取り除くために、私が各部門の情報を引き出すために使用するマクロを組み込む方法はありますか?特定の部門のマクロを実行すると、テンプレートに基づいて新しいワークシートが開き、現在のマクロが新しいワークシートにプルする情報が格納されるように、変更したいと考えています。私は、マスターワークシートから引き出すために今使用することは、次のとおりです。私のワークブックの仕組みを再加工しようとしています
Sub DepartmentName()
Dim LCopyToRow As Long
Dim LCopyToCol As Long
Dim arrColsToCopy
Dim c As Range, x As Integer
On Error GoTo Err_Execute
arrColsToCopy = Array(1, 3, 4, 8, 25, 16, 17, 15) 'which columns to copy ?
Set c = Sheets("MasterSheet").Range("Y5") 'Start search in Row 5
LCopyToRow = 10 'Start copying data to row 10 in DepartmentSheet
While Len(c.Value) > 0
'If value in column Y ends with "2540", copy to DepartmentSheet
If c.Value Like "*2540" Then
LCopyToCol = 1
Sheets("DepartmentSheet").Cells(LCopyToRow, LCopyToCol).EntireRow.Insert shift:=x1Down
For x = LBound(arrColsToCopy) To UBound(arrColsToCopy)
Sheets("DepartmentSheet").Cells(LCopyToRow, LCopyToCol).Value = _
c.EntireRow.Cells(arrColsToCopy(x)).Value
LCopyToCol = LCopyToCol + 1
Next x
LCopyToRow = LCopyToRow + 1 'next row
End If
Set c = c.Offset(1, 0)
Wend
'Position on cell A5
Range("A5").Select
MsgBox "All matching data has been copied."
Exit Sub
Err_Execute:
MsgBox "An error occurred."
End Sub
私はそれが上記まったく同じ方法でそれがテンプレートを開くように、この中に何かを挿入して、情報をポストしたいと思います。
deptの情報で新しいワークブックを作成するか、マスターリストと同じワークブック内にテンプレートシートをコピーするだけでしたか? –
基本的には後者です。ワークブックには常に2枚のシートが含まれています。トップシートはマスター、下部シートはテンプレートです。その後、特定の部門のマクロを実行すると、テンプレートとまったく同じように見えて機能する新しい(3番目の)ワークシートを開き、既存のマクロでプルする方法と同じようにマスターシートから情報を引き出す必要があります。 – Jon
+1非常に良いアイデアです。 1つのプレゼンテーションシートを作成する! – Reafidy