0
我試圖創建一個宏以從A7開始將行從不同的行復制到「數據」表中。每張表中的行有所不同。它只是複製每張表中的第7行。這裏是我的代碼:將具有不同行號的行從不同的行復制到一張表
Sub Button1_Click()
Worksheets("Data").Cells.ClearContents
Dim x As Integer
Dim y As Integer
Dim ws1 As Worksheet
Dim First As Integer
Dim Last As Integer
Dim i As Integer
Set ws1 = Worksheets("Data")
First = Worksheets("Data").Index
Last = Worksheets("Summary").Index
ws1.Range("A" & 1).Value = "Date"
ws1.Range("B" & 1).Value = "Equipment"
ws1.Range("C" & 1).Value = "Type"
ws1.Range("D" & 1).Value = "Qty/Hrs"
ws1.Range("E" & 1).Value = "Rate"
ws1.Range("F" & 1).Value = "Cost"
For i = (First + 1) To (Last - 1)
With Sheets(i)
MaxrOw = Cells(Rows.Count, "A").End(xlUp).Row
x = 7
Do Until .Range("A" & x).Value = ""
If Not .Range("I" & x).Value = "" Then
ws1.Range("A" & MaxrOw + 1).Value = .Range("G" & 2).Value
ws1.Range("B" & MaxrOw + 1).Value = .Range("A" & x).Value
ws1.Range("C" & MaxrOw + 1).Value = .Range("B" & x).Value
ws1.Range("D" & MaxrOw + 1).Value = .Range("G" & x).Value
ws1.Range("E" & MaxrOw + 1).Value = .Range("H" & x).Value
ws1.Range("F" & MaxrOw + 1).Value = .Range("I" & x).Value
x = x + 1
Else
x = x + 1
End If
Loop
End With
Next i
Columns("A:F").Sort key1:=Range("C1"), Order1:=xlAscending, Header:=xlYes
End Sub
在此先感謝。
MaxrOw在錯誤的地方。並且不符合父母的資格。將此行移動到'Do Until'行的下方:'MaxrOw = ws1.Cells(ws1.Rows.Count,「A」).End(xlUp).Row'。並刪除你有的。 –
謝謝。它正在工作。 –
我很高興Scott的評論允許這段代碼正常工作,但這仍然是非常低效的代碼。我想提出更好的建議,但首先我有一個問題。您複製列G兩次;其中之一是否意味着列C? –