Vb.net Excel VBA递归获取依赖单元格
我正在编写一个程序,它应该从给定的单元格地址获取所有依赖单元格,直接或间接地影响同一工作表中的其他单元格值。 例如 如果我想要A3的依赖关系,它应该是A1和A2 我已经使用了方法Vb.net Excel VBA递归获取依赖单元格,vb.net,excel,Vb.net,Excel,我正在编写一个程序,它应该从给定的单元格地址获取所有依赖单元格,直接或间接地影响同一工作表中的其他单元格值。 例如 如果我想要A3的依赖关系,它应该是A1和A2 我已经使用了方法Range.Dependents,它应该给出所有依赖单元格,但是失败了。因此,我也尝试使用Range.DirectDependents,它只返回即时单元格依赖项,并编写递归函数对每个结果执行相同的操作。 对于示例A3,列表A2和A2递归返回A1 我的问题是 为什么Range.dependents无法正确列出所有嵌套的依赖
Range.Dependents
,它应该给出所有依赖单元格,但是失败了。因此,我也尝试使用Range.DirectDependents
,它只返回即时单元格依赖项,并编写递归函数对每个结果执行相同的操作。
对于示例A3,列表A2和A2递归返回A1
我的问题是
Dim Address As String
Try
For Each DataRange In ValidRange
cellAddress = DataRange.Address
Try
cellRange = DataRange.Dependents
Slno = Slno + 1
Address = cellRange.Address
Output = Output & "<tr><td>" & Slno & "<td>" & cellAddress & "</td><td>" & Address & "</td></tr>"
Catch ex As Exception
'Skip if no dependencies found
End Try
Next
Catch ex As Exception
Response.Write(ex.Message)
End Try
Dim地址作为字符串
尝试
对于ValidRange中的每个数据范围
cellAddress=DataRange.Address
尝试
cellRange=DataRange.Dependents
Slno=Slno+1
Address=cellRange.Address
输出=输出&&&Slno&&cellAddress&&Address&&
特例
'如果未找到依赖项,则跳过
结束尝试
下一个
特例
响应。写入(例如消息)
结束尝试
快速尝试并发现以下问题
?Range("A1").Dependents.Address
$A$2:$A$3
?Range("A2").Dependents.Address
$A$3
?Range("A3").Dependents.Address
Run-time error
显然,您要查找的是范围。先例
?Range("A3").Precedents.Address
$A$1:$A$2
请为VBA尝试此代码
Sub test()
On Error Resume Next
Dim cell As Range, c As Range
Set cell = Range("A3").Precedents
If cell Is Nothing Then Exit Sub
For Each c In cell
Debug.Print c.Address
Next
End Sub
VBA不存在Try/Catch语句。。。这是VB脚本还是VB.Net?您可能还想查看它的VB.Net,并尝试在VB.Net中使用catch
Sub test()
On Error Resume Next
Dim cell As Range, c As Range
Set cell = Range("A3").Precedents
If cell Is Nothing Then Exit Sub
For Each c In cell
Debug.Print c.Address
Next
End Sub