gpt4 book ai didi

vba - 如何测试 Excel 中的范围是否包含单元格?

转载 作者:行者123 更新时间:2023-12-02 07:24:08 26 4
gpt4 key购买 nike

我在 Excel/VBA 的 Worksheet_Change 事件中发现了一个问题。我需要将 Target.Dependents 分配给一个 Range,但如果它没有依赖项,则会出现错误。我尝试测试 Target.Dependents.Cells.Count 但这不起作用。有什么想法吗?

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 OR Target.Dependents.Cells.Count = 0 Then Exit Sub

Dim TestRange As Range

Set TestRange = Target.Dependents

我也尝试过“Target.Dependents Is Nothing”。

最佳答案

简短的回答,没有办法在不引发错误的情况下测试依赖项,因为属性本​​身设置为在访问时引发错误,但没有任何错误。我不喜欢这种设计,但没有办法在不抑制错误的情况下阻止它。 AFAIK 这是你能用它做的最好的事情。

Sub Example()
Dim rng As Excel.Range
Set rng = Excel.Selection
If HasDependents(rng) Then
MsgBox rng.Dependents.Count & " dependancies found."
Else
MsgBox "No dependancies found."
End If
End Sub

Public Function HasDependents(ByVal target As Excel.Range) As Boolean
On Error Resume Next
HasDependents = target.Dependents.Count
End Function

解释,如果没有依赖项,则会引发错误,并且 HasDependents 的值与默认类型(即 false)保持不变,因此返回 false。如果有家属,计数值永远不会为零。所有非零整数都会转换为 true,因此当将 count 指定为返回值时,将返回 true。它与您已经使用的非常接近。

关于vba - 如何测试 Excel 中的范围是否包含单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/923684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com