作者:绿色风
分类:
时间:2022-08-17
浏览:108
楼主 kevinchengcw |
Q: 如何利用vba代码实现相同格式的表格由表一仅复制公式单元格到表二? A: 代码如下:
- Sub test()
- Dim Rng As Range, Arr, N&
- With Worksheets("111") '在表一中进行操作
- If Not .Cells.SpecialCells(xlCellTypeFormulas) Is Nothing Then '如果有含公式的单元格则进行下述操作
- Application.Calculation = xlCalculationManual '工作表重算设置为手动,加快处理速度
- ReDim Arr(1 To .Cells.SpecialCells(xlCellTypeFormulas).Cells.Count, 1 To 2) '重新定义数组为二维,行数与含公式单元格数量一致,列数为2,一列装单元格地址,一列装单元格公式
- N = 1 '初始化变量
- For Each Rng In .Cells.SpecialCells(xlCellTypeFormulas) '循环各个公式单元格,将地址和公式提取出装入数组中
- Arr(N, 1) = Rng.Address
- Arr(N, 2) = Rng.Formula
- N = N + 1
- Next Rng
- With Worksheets("222") '到表二中进行操作
- For N = LBound(Arr) To UBound(Arr) '循环数组各项
- .Range(Arr(N, 1)).Formula = Arr(N, 2) '指定地址的单元格公式为对应的数组项内容
- Next N
- End With
- Application.Calculation = xlCalculationAutomatic '恢复工作表公式重算为自动
- End If
- End With
- End Sub
|
2楼 0Mouse |
将单元格的“地址”和“公式”信息分开放入数组对应的位置,抵达目标区域后再“组装”起来,这个思路真不错,谢谢K哥分享!现学一哈以加深印象!- Sub test()
- Dim rng As Range, arr(0, 3)
- Set rng = Range("D3")
- With rng
- arr(0, 0) = .Address '存放地址
- arr(0, 1) = .Font.ColorIndex '存放字体颜色
- arr(0, 2) = .Interior.ColorIndex '存放填充颜色
- arr(0, 3) = .Formula '存放公式
- End With
- With Sheet2
- .Range(arr(0, 0)).Font.ColorIndex = arr(0, 1)
- .Range(arr(0, 0)).Interior.ColorIndex = arr(0, 2)
- .Range(arr(0, 0)).Formula = arr(0, 3)
- End With
- Set rng = Nothing
- Erase arr
- End Sub
附件: SAMPLE-xq.rar |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一