ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何利用vba代码实现相同格式的表格由表一仅复制公式单元格到表二?

如何利用vba代码实现相同格式的表格由表一仅复制公式单元格到表二?

作者:绿色风 分类: 时间:2022-08-17 浏览:108
楼主
kevinchengcw
Q: 如何利用vba代码实现相同格式的表格由表一仅复制公式单元格到表二?
A: 代码如下:
  1. Sub test()
  2. Dim Rng As Range, Arr, N&
  3. With Worksheets("111")  '在表一中进行操作
  4.     If Not .Cells.SpecialCells(xlCellTypeFormulas) Is Nothing Then  '如果有含公式的单元格则进行下述操作
  5.         Application.Calculation = xlCalculationManual  '工作表重算设置为手动,加快处理速度
  6.         ReDim Arr(1 To .Cells.SpecialCells(xlCellTypeFormulas).Cells.Count, 1 To 2)  '重新定义数组为二维,行数与含公式单元格数量一致,列数为2,一列装单元格地址,一列装单元格公式
  7.         N = 1  '初始化变量
  8.         For Each Rng In .Cells.SpecialCells(xlCellTypeFormulas)   '循环各个公式单元格,将地址和公式提取出装入数组中
  9.             Arr(N, 1) = Rng.Address
  10.             Arr(N, 2) = Rng.Formula
  11.             N = N + 1
  12.         Next Rng
  13.         With Worksheets("222")   '到表二中进行操作
  14.             For N = LBound(Arr) To UBound(Arr)  '循环数组各项
  15.                 .Range(Arr(N, 1)).Formula = Arr(N, 2)   '指定地址的单元格公式为对应的数组项内容
  16.             Next N
  17.         End With
  18.         Application.Calculation = xlCalculationAutomatic   '恢复工作表公式重算为自动
  19.     End If
  20. End With
  21. End Sub
2楼
0Mouse
将单元格的“地址”和“公式”信息分开放入数组对应的位置,抵达目标区域后再“组装”起来,这个思路真不错,谢谢K哥分享!现学一哈以加深印象!
  1. Sub test()
  2. Dim rng As Range, arr(0, 3)
  3. Set rng = Range("D3")
  4. With rng
  5.     arr(0, 0) = .Address '存放地址
  6.     arr(0, 1) = .Font.ColorIndex '存放字体颜色
  7.     arr(0, 2) = .Interior.ColorIndex '存放填充颜色
  8.     arr(0, 3) = .Formula '存放公式
  9. End With
  10. With Sheet2
  11.     .Range(arr(0, 0)).Font.ColorIndex = arr(0, 1)
  12.     .Range(arr(0, 0)).Interior.ColorIndex = arr(0, 2)
  13.     .Range(arr(0, 0)).Formula = arr(0, 3)
  14. End With
  15. Set rng = Nothing
  16. Erase arr
  17. End Sub
附件:
SAMPLE-xq.rar

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap