Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,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
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
VBA程序:查找并列出指定工作表中所有合并单元格的地址
运行下面的VBA过程,将列出当前工作表中所有合并单元格的地址。程序会新建一个工作表并重命名,然后在其中输入所有合并单元格的地址。
fanjy
2024/03/11
3720
VBA程序:查找并列出指定工作表中所有合并单元格的地址
VBA实战技巧01: 在代码中引用动态调整单元格区域的5种方法
在VBA代码中,经常要引用单元格数据区域并对其进行操作。然而,如果对数据区域采用“硬编码”地址,那么当该区域大小变化时,必须修改相应的引用该区域的代码。本文整理了可以动态引用数据区域的5种方法,供编写代码时参考。
fanjy
2020/02/12
5K0
ExcelVBA从工作簿中查询多个姓名并复制出整行数据
工作中用的代码 Sub ExcelVBA从工作簿中查询多个姓名并复制出整行数据() Dim outFile As String, inFile As String Dim outWb As Workbook, mysht As Worksheet, tempsht As Worksheet, t_arr(1 To 30) Dim SearchRange As Range Dim LastRow As Integer, arr, FindStr As String, i
哆哆Excel
2022/10/31
1.8K0
VBA汇总一个文件多工作表到一个表
VBA汇总一个文件多工作表到一个表 . 今天在工作中,同事传来一个excel文件中有很多个工作表,要我汇总,每个表的标题是一样的,虽然一个一个复制、粘贴是可以做到的,但时间很长,所以把以前学习一个代码,拿来用一下,代码找了很久才找到,想想还是把他放在这里好一点,以后查找方便 . 把多个工作表的内容汇总到一个“汇总”表中 Sub sheets_to_one() Dim mysht As Worksheet, rng As Range, sht As Worksheet Dim
哆哆Excel
2022/10/31
5920
Excel VBA编程
在Excel中,数据只有文本,数值,日期值,逻辑值和错误值五种类型。但是在VBA中,数据类型跟Excel不完全相同。根据数据的特点,VBA将数据分为布尔型(boolean),字节型(byte),整数型(integer),单精度浮点型(single),双精度浮点型(double),货币型(currency),小数型(decimal),字符串型(string),日期型(date),对象型等等
全栈程序员站长
2022/08/11
46.9K0
Excel VBA编程
VBA用字典批量查找社保数据
【问题】我们知道社保导出的数据是很多合并的单元格,如果要查找一个数据都要找很久,如果数量多了更多费时,基于以上问题,特用VBA设计一个批量查找的程序。
哆哆Excel
2022/10/25
7510
VBA用字典批量查找社保数据
删除多行多列中的空单元格并重新整理数据
这是在www.vbaexpress.com中看到的一个示例,个人觉得代码很有代表性,特辑录于此,与大家共享。
fanjy
2024/05/13
4410
删除多行多列中的空单元格并重新整理数据
VBA实战技巧35:使用VBA组织图形2
引言:本文的代码与昨天发表的《VBA实战技巧34:使用VBA组织图形1》一样,都整理自mrexcel.com,一个很好的令人兴奋的示例,有兴趣的朋友可以仔细研究。
fanjy
2021/09/22
1.8K0
Excel应用实践11:合并多个工作簿中的数据——示例2
在上一篇文章《Excel应用实践10:合并多个工作簿中的数据》中,我们使用代码快速合并超过50个Excel工作簿文件,然而,如果要合并的工作簿中工作表的名称不相同,但位于每个工作簿的第1个工作表;并且,要在合并后的工作表的第1列中输入相对应的工作簿文件名,以便知道合并后的数据来自哪个工作簿文件。
fanjy
2019/07/19
2.9K0
VBA应用技巧:使用VBA快速隐藏工作表行
使用Excel VBA隐藏行的简单方法是使用联合区域。通常,如果要使用VBA快速隐藏行,可以选择自动筛选工具,使用一行代码可快速隐藏数千行。然而,如果需要在同一区域内为其他目的使用自动筛选,那就必须单独处理每个单元格。如果了解VBA,当程序必须在多个单元格上循环时,它可能会较慢,尤其是在每次迭代后需要执行操作时。
fanjy
2022/11/16
4.6K0
VBA应用技巧:使用VBA快速隐藏工作表行
EXCEL VBA语句集300
        定制模块行为 (1) Option Explicit ‘强制对模块内所有变量进行声明 Option Private Module ‘标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示  Option Compare Text ‘字符串不区分大小写  Option Base 1 ‘指定数组的第一个下标为1 (2) On Error Resume Next ‘忽略错误继续执行VBA代码,避免出现错误消息 (3) On Error GoTo ErrorHandler ‘当错误发生时跳转到过程中的某个位置 (4) On Error GoTo 0 ‘恢复正常的错误提示 (5) Application.DisplayAlerts=False ‘在程序执行过程中使出现的警告框不显示 (6) Application.ScreenUpdating=False ‘关闭屏幕刷新 Application.ScreenUpdating=True ‘打开屏幕刷新 (7) Application.Enable.CancelKey=xlDisabled ‘禁用Ctrl+Break中止宏运行的功能  工作簿 (8) Workbooks.Add() ‘创建一个新的工作簿 (9) Workbooks(“book1.xls”).Activate ‘激活名为book1的工作簿 (10) ThisWorkbook.Save ‘保存工作簿 (11) ThisWorkbook.close ‘关闭当前工作簿 (12) ActiveWorkbook.Sheets.Count ‘获取活动工作薄中工作表数 (13) ActiveWorkbook.name ‘返回活动工作薄的名称 (14) ThisWorkbook.Name ‘返回当前工作簿名称 ThisWorkbook.FullName ‘返回当前工作簿路径和名称 (15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小 (16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列 (17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化  工作表 (18) ActiveSheet.UsedRange.Rows.Count ‘当前工作表中已使用的行数 (19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性) (20) Sheets(Sheet1).Name= “Sum” ‘将Sheet1命名为Sum (21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) ‘添加一个新工作表在第一工作表前 (22) ActiveSheet.Move After:=ActiveWorkbook. _ Sheets(ActiveWorkbook.Sheets.Count) ‘将当前工作表移至工作表的最后 (23) Worksheets(Array(“sheet1”,”sheet2”)).Select ‘同时选择工作表1和工作表2 (24) Sheets(“sheet1”).Delete或 Sheets(1).Delete ‘删除工作表1 (25) ActiveWorkbook.Sheets(i).Name ‘获取工作表i的名称 (26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines ‘切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮 (27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘切换工作表中的行列边框显示 (28) ActiveSheet.UsedRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式 (29) Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接 (30) ActiveSheet.PageSetup.Orientation=xlLandscape 或ActiveSheet.PageSetup.Orientation=2 ‘将页面设置更改为横向 (31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页面设置的表尾中输入文件路径 ActiveSheet.PageSetup.Le
Tony老师
2020/03/05
2.3K0
使用VBA合并工作表
从多个Excel工作表(子工作表)中获取信息,并用子工作表中的所有数据填充汇总工作表(父工作表),这是很多朋友会提到的常见要求。如果部分数据是从添加新工作表到工作簿中而增长的,那么获得这些数据的汇总非常方便,例如,添加单独的工作表,包含新月份的数据。
fanjy
2022/11/16
2.2K0
使用VBA合并工作表
仿Excel的撤销功能
这是在www.vbaexpress.com中看到的一个示例,实现了自己以前想做而未做的事情。
fanjy
2024/05/13
2520
仿Excel的撤销功能
Excel VBA之Range对象
Cells(1,Columns.Count).End(xlToLeft).Column
哆哆Excel
2022/10/25
1.7K0
小游戏2048
用Excel VBA来实现的手机上玩的那种组合数字的小游戏。 Public Row As Integer, Col As Integer '偏移 Di
xyj
2020/07/28
8120
小游戏2048
杨老师课堂之Excel VBA 程序开发第六讲根据部门列创建工作表
方式1:本节课件下载地址:链接: https://pan.baidu.com/s/1rf5pRmZ95fjVbz70KYi6Aw 密码: q9yk
杨校
2018/12/06
1.2K0
VBA实战技巧34:使用VBA组织图形1
引言:本文的代码整理自mrexcel.com,一个很好的令人兴奋的示例,有兴趣的朋友可以仔细研究。
fanjy
2021/09/22
1.7K0
ExcelVBA 批量生成工作表并随机生成成绩表
'有时候我的制作教程的过程中需要一些随机的数据,如成绩表,有时也需要很多表,不想一个一个建立工作表,所以为了方便
哆哆Excel
2022/10/25
8560
ExcelVBA 批量生成工作表并随机生成成绩表
ExcelVBA End属性查找”最后”的单元格
'等同于按键 (End+向上键、End+向下键、End+向左键、End+向右键),或者CTRL+上下左右
哆哆Excel
2022/10/25
1.7K0
ExcelVBA End属性查找”最后”的单元格
Excel应用实践22: 比较并合并工作表
有两个工作表,均含有相同的数据,但最后一列名称和产品的数量不同,如下图1和图2所示。
fanjy
2019/10/22
7760
Excel应用实践22: 比较并合并工作表
相关推荐
VBA程序:查找并列出指定工作表中所有合并单元格的地址
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验