前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >VBA程序:列出指定工作表中的所有公式

VBA程序:列出指定工作表中的所有公式

作者头像
fanjy
发布于 2024-01-15 02:11:05
发布于 2024-01-15 02:11:05
55700
代码可运行
举报
文章被收录于专栏:完美Excel完美Excel
运行总次数:0
代码可运行

标签:VBA

下面的VBA过程在指定的新工作表中列出指定工作表中的所有公式,包含具体的公式、所在工作表名称及其所在单元格地址。

代码:

代码语言:javascript
代码运行次数:0
运行
复制
Sub ListAllFormulas()
 Dim sht As Worksheet
 Dim rSheet As Worksheet
 Dim myRng As Range
 Dim newRng As Range
 Dim c As Range
 Dim endRow As Long
 
 '放置公式的工作表, 可修改为你的实际工作表名
 Set rSheet = Sheets("FormulasSheet")
 '要查找公式的工作表, 可修改为你的实际工作表名
 Set sht = Sheets("Sheet1")
 '查找已使用的单元格区域
 Set myRng = sht.UsedRange
 
 '错误处理, 以应对没有公式的情形
 On Error Resume Next
 '使用SpecialCells进一步减少循环
 Set newRng = myRng.SpecialCells(xlCellTypeFormulas)
 '仅遍历SpecialCells区域
 For Each c In newRng 
   With rSheet
     '设置放置公式工作表中有数据行之下的空行
     endRow = .Range("A" & Rows.Count).End(xlUp).Row + 1
     '去掉公式中的"="号后, 将公式放置在列A.Range("A" & endRow).Value = Mid(c.Formula, 2, (Len(c.Formula)))
     '放置包含公式的工作表名在列B.Range("B" & endRow).Value = sht.Name
     '放置去除了绝对符号$的公式所在单元格地址于列C.Range("C" & endRow).Value = Application.WorksheetFunction.Substitute(c.Address, "$", "")
   End With
 Next c
 On Error GoTo 0
 '自动调整列宽
 rSheet.Columns("A:C").AutoFit
End Sub

注意,程序假设放置公式的工作表第一行是标题行。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档