这是我目前正在使用的代码,它运行得很完美,但它复制了整行,而不仅仅是我希望它去的部分。 如何指定仅复制行的一部分的代码? 我评论了我认为问题的代码。 任何帮助都会非常有帮助! 附:我暂时搁置这个帖子,因为我认为这已经解决了,但我的搜索没有找到任何结果。
Sub CopySPData()
Dim c As Range
Dim j As Integer
Dim Source As Worksheet
Dim Target As Worksheet
' Change worksheet designations as needed
Set Source = ActiveWorkbook.Worksheets("All")
Set Target = ActiveWorkbook.Worksheets("Host New")
j = 3 ' Start copying to row 3 in target sheet
For Each c In Source.Range("F1:F1000") ' Do 1000 rows
If c = "Host" Then
Source.Rows(c.Row).Copy Target.Rows(j) ' I think the issue is in this line
j = j + 1
End If
Next c
End Sub
答案 0 :(得分:1)
您只需更改包含行的Rows()
Range()
即可。例如,如果您只需要Source
表中 C 到 K 的列,并将其粘贴到 E 列Target表中,您需要更改:
Source.Rows(c.Row).Copy Target.Rows(j)
为:
Source.Range("C" & c.Row & ":K" & c.Row).Copy Target.Range("E" & j)
答案 1 :(得分:0)
假设您要将E列中的单元格复制到G列,其中该行F列中的值等于“Host”,并将其粘贴到“Host New”表,从A列开始,您可以使用以下一行:
Source.Range("E" & c.Row & ":G" & c.Row).Copy Target.Range("A" & j)
注意:您可以使用AutoFilter
方法一次复制整个范围,而无需使用For Each c In Source.Range("F1:F1000")
循环。