VBA 将行从一个工作表复制到另一个(语法错误?)
VBA Copy Rows from One worksheet to Another (Syntax error?)
我在一个名为 "Master" 的工作表上有数据,我试图根据原始行是否在列中包含 "Hire" 有条件地将每一行复制到名为 "Auto" 的工作簿A.
Sub Macro2()
Dim lr As Long, lr2 As Long, r As Long
lr = Sheets("Master").Cells(Rows.Count, "A").End(xlUp).Row
lr2 = Sheets("AUTO").Cells(Rows.Count, "A").End(xlUp).Row
For r = lr To 2 Step -1
Select Case Range("A" & r).Value
Case Is = "Hire"
Rows(r).Copy Destination:=Sheets("AUTO").Range("A" & lr2 + 1)
lr2 = Sheets("AUTO").Cells(Rows.Count, "A").End(xlUp).Row
End Select
Next r
End Sub
但是,当我 运行 宏时,它不会填充第二个工作表。
您似乎只是想在 A 列中找到单词 "Hire" 并将该行粘贴到另一个 sheet。
这可能更适合你。
Sub Button1_Click()
Dim sh As Worksheet, ws As Worksheet
Dim rws As Long, rng As Range, c As Range
Set ws = Worksheets("AUTO")
Set sh = Worksheets("Master")
With sh
rws = .Cells(Rows.Count, "A").End(xlUp).Row
Set rng = .Range(.Cells(1, 1), .Cells(rws, 1))
End With
For Each c In rng.Cells
If c = "Hire" Then
c.EntireRow.Copy Destination:=ws.Cells(Rows.Count, "A").End(xlUp).Offset(1)
End If
Next c
End Sub
我在一个名为 "Master" 的工作表上有数据,我试图根据原始行是否在列中包含 "Hire" 有条件地将每一行复制到名为 "Auto" 的工作簿A.
Sub Macro2()
Dim lr As Long, lr2 As Long, r As Long
lr = Sheets("Master").Cells(Rows.Count, "A").End(xlUp).Row
lr2 = Sheets("AUTO").Cells(Rows.Count, "A").End(xlUp).Row
For r = lr To 2 Step -1
Select Case Range("A" & r).Value
Case Is = "Hire"
Rows(r).Copy Destination:=Sheets("AUTO").Range("A" & lr2 + 1)
lr2 = Sheets("AUTO").Cells(Rows.Count, "A").End(xlUp).Row
End Select
Next r
End Sub
但是,当我 运行 宏时,它不会填充第二个工作表。
您似乎只是想在 A 列中找到单词 "Hire" 并将该行粘贴到另一个 sheet。
这可能更适合你。
Sub Button1_Click()
Dim sh As Worksheet, ws As Worksheet
Dim rws As Long, rng As Range, c As Range
Set ws = Worksheets("AUTO")
Set sh = Worksheets("Master")
With sh
rws = .Cells(Rows.Count, "A").End(xlUp).Row
Set rng = .Range(.Cells(1, 1), .Cells(rws, 1))
End With
For Each c In rng.Cells
If c = "Hire" Then
c.EntireRow.Copy Destination:=ws.Cells(Rows.Count, "A").End(xlUp).Offset(1)
End If
Next c
End Sub