1,2,3,4という番号の異なるシートからデータを取り出すことによって "効率"シートにテーブルを作成しようとしています。構築しようとすると8つの列があります。そのうち1つは日付です。日付は、シートの1つのセル、セルG4にのみあり、すべてのシート上の同じ場所です。他の列は列B、C、D、E、F、OおよびQから来ており、9行目から下方に向かっています。私たちがシート1から2から3などに行くと、列のサイズが変わることがあります。データだけをコピーしたいだけです。行20まではいくつかの書式設定がありますが、固定数の行をデータの数だけコピーする必要はありません。この情報を「効率」シートに貼り付けると、書式ではなくデータのみが必要になります。私はまた、他のデータポイントの長さとそれが撮影された "日付"シートと一致する日付列の長さが必要です。私はまた、ビルドされているテーブルの最初の行にタイトル行が1回だけ必要で、項目は "日付"とB、C、D、E、F、O、Q列の行8です(これはすべての "日付"シートで同じですが、 "効率"シートの表ヘッダーに必要なのは一度だけです)。誰も私がこれを実現するのを助けることができるだろうか?異なるシートからデータを引っ張ってExcelでテーブルを作成する
おかげ
'
Sub DataTable()
Dim wsTable As Worksheet
Set wsTable = Worksheets("Efficiency") 'change as needed
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case Is = "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"
With ws
Dim rngData As Range
Set rngData = Union(.Range("B:F"), .Range("O:O"), .Range("Q:Q"))
Dim lRow As Long
Dim rCheck As Range
For Each rCheck In Intersect(rngData, .Rows(1))
If .Cells(.Rows.Count, rCheck.Column).End(xlUp).Row > lRow Then
lRow = .Cells(.Rows.Count, rCheck.Column).End(xlUp).Row
End If
Next
Dim dDate As Date
dDate = .Range("G4").Value
With wsTable
.Range("A" & .Rows.Count).End(xlUp).Offset(1).Resize(lRow, 1).Value = dDate
ws.Range("B9:F" & lRow).Copy
.Range("B" & .Rows.Count).End(xlUp).Offset(1).PasteSpecial x1PasteValues
ws.Range("O9:O" & lRow).Copy
.Range("O" & .Rows.Count).End(xlUp).Offset(1).PasteSpecial x1PasteValues
ws.Range("Q9:O" & lRow).Copy
.Range("Q" & .Rows.Count).End(xlUp).Offset(1).PasteSpecial x1PasteValues
End With
End With
End Select
Next
End Sub
'
美しいです!ありがとうございました!うまくできた – Kish