怎样把VB追加的数据变为数值,而非公式??请进哈!
使用EXCEL过程中,在论坛学到不少东西,最近用论坛大侠的一个VB追加复制区域,遇到了些问题
Private Sub CommandButton1_Click()
Dim Arr, rng As Range, i As Long
Arr = Sheets("sheet1").Range("A1:A" & 30) '设置当前表,根据B列不为空,30为行号,即限制到30行
For i = 2 To UBound(Arr) 'A列第2行开始
If Arr(i, 1) <> "" Then '判断A列是否存在数据
If rng Is Nothing Then '如果rng还没有赋值,第一次遇到A列有数据行
Set rng = Cells(i, 1).Resize(1, 3) '第1列开始的3列数据区域赋予变量rng
Else '如果rng已经赋值
Set rng = Union(rng, Cells(i, 1).Resize(1, 3)) '第1列开始的3列数据和原来A列非空行数据区域合并
End If
End If
Next
If Not rng Is Nothing Then '如果rng已经赋值
With Sheets("Sheet2") '设置目标表Sheet2
i = Sheets("Sheet2").Range("A65536").End(xlUp).Row + 1
rng.Copy .Cells(i, 1) '把A列所有非空行数据区域复制到表Sheet2,第1列开始
MsgBox ("OK!追加复制成功!")
End With
End If
End Sub
这个代码是蛮好用,可是怎么样才能让它复制公式的值过去,而不是公式呢,另外单元格的颜色也被复制,在新表里编排并不好看,请大侠们不吝赐教哦,上传附件,想用数值追加
,麻烦帮改一下代码,最好能指出关键处理增长知识哦
[解决办法]
只复制值得话用
Range.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False