我已在VBA中编写此代码:
Sub getdata()
Dim x As Integer, y As Integer
Dim rcell As Range
Sheets("Material Data").Select
With Sheets("Material Data")
y = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
For Each rcell In Range("C10:C62")
If rcell > 1 Then rcell.Copy
Sheets("Sheet1").Range("A" & y).PasteSpecial xlPasteValues
y = y + 1
Next rcell
End Sub
此代码的问题在于,在C10:C62范围内,只有6个值大于1(其中3个为65,另外3个为60)。但是这会以某种方式在sheet1中粘贴53个值,其中24个值为65,其余为60.我不知道从哪里得到53个值。
答案 0 :(得分:1)
当您的值超过1时,您只想paste
,但if-then
语句仅包含Copy
操作,但每个操作都执行paste
操作细胞。尝试更改代码,如下所示:
If rcell > 1 Then
rcell.Copy
Sheets("Sheet1").Range("A" & y).PasteSpecial xlPasteValues
y = y + 1
End If