我有一个包含许多公式和数据的Excel电子表格,我需要跟踪这些内容。我编写了一个小的宏来查找所选单元格的前导单元格,但我想要将这个宏递归处理,以便我可以找到所有的前导单元格。例如,将焦点设置到一个单元格并运行此函数将会突出显示该单元格,并突出显示其前导单元格,然后再突出显示那些单元格的前导单元格,以此类推。
目前我遇到的问题是不确定递归的结束条件应该是什么。我已经遇到了一些无限循环的问题,而且我对递归不够熟悉,无法找出一个可靠的解决方案。
以下是一些代码,我正在使用它(正确地)查找最初的前导单元格:
目前我遇到的问题是不确定递归的结束条件应该是什么。我已经遇到了一些无限循环的问题,而且我对递归不够熟悉,无法找出一个可靠的解决方案。
以下是一些代码,我正在使用它(正确地)查找最初的前导单元格:
Sub FindClosedWbReferences(inRange As Range)
Rem fills the collection With closed precedents parsed from the formula String
Dim testString As String, returnStr As String, remnantStr As String
testString = inRange.Formula
testString = RemoveTextInDoubleQuotes(testString): Rem New line
Set ClosedWbRefs = New Collection
Do
returnStr = NextClosedWbRefStr(testString, remnantStr)
ClosedWbRefs.Add Item:=returnStr, Key:=CStr(ClosedWbRefs.count)
testString = remnantStr
inRange.Select
inRange.Interior.ColorIndex = 36
Loop Until returnStr = vbNullString
ClosedWbRefs.Remove ClosedWbRefs.count
End Sub
这是从类似于以下的主函数中调用的:
If homeCell.HasFormula Then
Set OtherWbRefs = New Collection: CountOfClosedWb = 0
Set SameWbOtherSheetRefs = New Collection
Set SameWbSameSheetRefs = New Collection
Rem find closed precedents from formula String
Call FindClosedWbReferences(homeCell)
非常感谢您的支持。谢谢。
在IT技术方面,任何帮助都是令人赞赏的。