作者:绿色风
分类:
时间:2022-08-18
浏览:94
楼主 xmyjk |
Q:如何用VBA求各工作表内的公式引用了哪些其它表的数据源?
A:- Sub Test2()
- Application.ScreenUpdating = False
- Dim Rng As Range, r As Range, d, sh As Worksheet, ds, snm As String, nm, i%
- Set d = CreateObject("scripting.dictionary")
- Set ds = CreateObject("scripting.dictionary")
- For Each sh In Sheets
- If sh.Name Like 0 Or Val(sh.Name) + 0 <> 0 Then
- snm = "'" & sh.Name & "'!"
- Else
- snm = sh.Name & "!"
- End If
- ds(snm) = sh.Name
- Next
- nm = ds.keys
- On Error Resume Next
- For Each sh In Sheets
- If sh.Name <> "想法" Then
- Set r = sh.UsedRange.SpecialCells(xlCellTypeFormulas)
- If Not r Is Nothing Then
- For Each Rng In r
- For i = 0 To UBound(nm)
- If nm <> sh.Index - 1 Then
- If InStr(Rng.Formula, nm(i)) > 0 Then
- d("表""" & sh.Name & """中的公式含有非本表关联,该关联表的表名为:" & ds(nm(i))) = ""
- End If
- End If
- Next
- Next
- End If
- End If
- Set r = Nothing: Set Rng = Nothing
- Next
- Application.ScreenUpdating = True
- Worksheets("想法").Select
- Worksheets("想法").UsedRange.Clear
- [A1].Resize(d.Count, 1) = Application.Transpose(d.keys)
- End Sub
根据工作表公式求得数据来源的工作表名.rar |
2楼 JOYARK1958 |
謝謝提供學習下載中 |
3楼 纵鹤擒龙水中月 |
学习了 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一