我正在尝试仅将数字/值从一张纸复制并粘贴到另一张纸。我正在使用的代码复制所有类型值。如果有人可以修改我的代码,我将不胜感激
Set wb = ThisWorkbook
Set src = wb.Sheets("sheet1")
Set tgt = wb.Sheets("sheet2")
With src
Lastrow = .Range("A" & .Rows.Count).End(xlUp).Row
With .Range("A8:A" & Lastrow)
tgt.Range("A8").Resize(.Rows.Count, .Columns.Count) = .Value2
End With
End With
答案 0 :(得分:0)
使用以下代码:
Set wb = ThisWorkbook
Set src = wb.Sheets("sheet1")
Set tgt = wb.Sheets("sheet2")
Dim lastrow As Integer
Dim i As Integer
lastrow = src.Range("A" & src.Rows.Count).End(xlUp).Row
For i = 8 To lastrow
If IsNumeric(src.Range("A" & i).Value) Then
tgt.Range("A" & i).Value = src.Range("A" & i).Value
End If
Next
将仅复制A列中的值。您也可以将其修改为其他列。
答案 1 :(得分:0)
如果保留相同的粘贴位置并不重要,则使用。union
可能是获取较大数据集的有效方法。
它的作用是,它使用所有数字值,然后在通过 loop 完成后将它们全部粘贴。
这种方法的问题可能是,它只是将数字值一个接一个地粘贴,无论它们在 Sheet1 中的位置如何。
Set wb = ThisWorkbook
Dim combine As Range
Set src = wb.Sheets("sheet1")
Set tgt = wb.Sheets("sheet2")
With src
Lastrow = .Range("A" & .Rows.Count).End(xlUp).Row
For i = 8 To Lastrow
If IsNumeric(Range("A" & i)) Then
If combine Is Nothing Then
Set combine = Range("A" & i)
Else
Set combine = Union(combine, Range("A" & i))
End If
End If
Next i
End With
combine.Copy Destination:=Sheets(2).Range("A8")