EXCEL中VBA的问题
本例中有一个最简单的公式,C1=A1+B1.如果整个C列都是如此公式,即从C1=A1+B1一直到C65536=A65536+B65536,那C列每个单元格都要有一个公式,数据会变得很大,可不可以用VBA解决这个问题呢?
1、按“ALT+F11”进入VBE; 2、“插入”-》“模块”; 3、在右侧编辑窗口贴入以下代码: '==从下行开始复制代码 Sub C列求和() Application。ScreenUpdating = False With Sheets("sheet1")。
Columns(3) 。FormulaR1C1 = "=RC[-2]+RC[-1]" 。Copy 。PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End With Application。
CutCopyMode = False Application。ScreenUpdating = True End Sub '==至上行代码复制结束 4、返回数据区,按“ALT+F8”激活运行宏的对话框,运行“C列求和”就成功了。 BTW,你在这个表里用这么简单的公式,不会影响速度,数据量也有限,当然如果公式很长,或者运算的数据都很大的话是另外一回事。
Sub xx() Dim i& Dim arr, brr, crr() aa = Timer Application。ScreenUpdating = 0 arr = Range("a1:a65536") brr = Range("b1:b65536") For i = 1 To 65536 ReDim Preserve crr(1 To 1, 1 To i) crr(1, i) = arr(i, 1) + brr(i, 1) Next Range("c1:c65536") = Application。
WorksheetFunction。Transpose(crr) Application。ScreenUpdating = 1 MsgBox ("用时" & Timer - aa & "秒") End Sub 学长的速度要比我快近4倍,只是含有公式,文件要大一点 。
答:通过 选择性粘贴 功能,将其粘贴为“数值”详情>>