excel vba 选择性复制粘贴数值问题

SHEET1中A2:K2是含有公式的变量区域,如何把SHEET1中A2:K2区域复制到SHEET3中A:K列中,要求执行一回复制一次,且仅粘贴数值。例如第一次复制到SHEET3中的A5:K5区域,执行第二次折复制到A6:K6区域中,执行第三次复制到A7;K7区域中,以此类推。注意:只复制粘贴数值,不粘贴公式及格式。求高手写一个宏。
注意下段宏是不能解决选择性粘贴数值问题哦。
Sub aa()
x = Sheet3.Range("a56565").End(3).Row + 1
Sheet1.Range("a2:b12").Copy Sheet3.Range("a" & x)
End Sub

能否再简单些呢?

第1个回答  2011-01-19
Sub aa()
Dim x
If Worksheets("sheet2").Range("a56565").End(xlUp).Row = 1 And Worksheets("sheet2").Range("a1").Value = "" Then
x = 1
ElseIf Worksheets("sheet2").Range("a56565").End(xlUp).Row = 1 And Worksheets("sheet2").Range("a2").Value = "" Then
x = 2
Else
x = Worksheets("sheet2").Range("a56565").End(xlUp).Row + 1
End If
Worksheets("Sheet1").Range("a2:k2").Copy
Worksheets("sheet2").Range("A" & x).PasteSpecial Paste:=xlPasteValues
End Sub

测试通过.
这个很简单了啊.
首先判断A1是不是空的,如果是空的,Worksheets("sheet2").Range("a56565").End(xlUp).Row =1,所以就复制到A1
但是当A1不等于空,A2是空的时候,Worksheets("sheet2").Range("a56565").End(xlUp).Row 仍然=1,复制的时候照样会在A1,所以要加两个if判断一下.这样才能保证你点一下就复制一下.本回答被提问者采纳
相似回答