Vba 将包含字符串的行从一个工作簿复制到另一个工作簿
我发现这段代码搜索工作表中的H列,并将包含单词“apply”的单元格复制到新工作簿中。 然后,我尝试更改它,使它可以复制整行,但无法找出我做错了什么,因为它现在只打开一个新工作簿并将其保留为空。 有人能看看代码,告诉我我做错了什么吗? 非常感谢Vba 将包含字符串的行从一个工作簿复制到另一个工作簿,vba,excel,rows,Vba,Excel,Rows,我发现这段代码搜索工作表中的H列,并将包含单词“apply”的单元格复制到新工作簿中。 然后,我尝试更改它,使它可以复制整行,但无法找出我做错了什么,因为它现在只打开一个新工作簿并将其保留为空。 有人能看看代码,告诉我我做错了什么吗? 非常感谢 Sub test() Dim K, X As Long, r As Range, v As Variant K = 1 X = 5 Dim w1 As Workbook, w2 As Workbook Set w
Sub test()
Dim K, X As Long, r As Range, v As Variant
K = 1
X = 5
Dim w1 As Workbook, w2 As Workbook
Set w1 = ThisWorkbook
Set w2 = Workbooks.Add
w1.Activate
For Each r In Intersect(Range("H:H"), ActiveSheet.UsedRange)
v = r.Value
X = X + 1
If InStr(v, "applied") > 0 Then
'**Initial line** - r.Copy w2.Sheets("Sheet1").Cells(K, 1)
With w2
w1.Sheets("Sheet1").Rows("X:X").Copy .Sheets("Sheet1").Rows("K")
K = K + 1
End With
End If
Next r
End Sub
您的代码中有多个错误
- 您正在使用字符串作为行引用。“X:X”将解析为字符串X:X。它不会替换字符串中的X值。与第2页上的“K”相同
- 您正在复制“应用”所在行下方的第五行
Dim K, X As Long, r As Range, v As Variant
K = 1
Dim w1 As Workbook, w2 As Workbook
Set w1 = ThisWorkbook
Set w2 = Workbooks.Add
w1.Activate
For Each r In Intersect(Range("H:H"), ActiveSheet.UsedRange)
v = r.Value
X = X + 1
If InStr(v, "applied") > 0 Then
r.EntireRow.Copy w2.Sheets("Sheet1").Rows(K)
K = K + 1
End If
Next r
您还可以将复制行更改为:
r.EntireRow.Copy w2.Sheets("Sheet1").Cells(K, 1)
但我不知道这一个是否比另一个更有效。谢谢,这帮了大忙!