为什么这个 ISVISIBLE() 自定义函数 return #VALUE!直到我按下 return?
Why does this ISVISIBLE() custom function return #VALUE! until I press return?
这个对 的回答建议使用这个函数来判断一个单元格是否可见:
Function isvisible(rng As Range)
isvisible = Not (rng.EntireColumn.Hidden Or rng.EntireRow.Hidden)
End Function
此功能与 INDIRECT()
结合使用效果很好。我在 A1
中有一个单元格引用,我正在使用 isvisible(INDIRECT(A1))
.
但是,当我隐藏 A1
所指的单元格(在另一个 sheet 上)时,我得到 #VALUE!
直到我进入公式栏并点击 return.
我的问题是:
- 为什么会这样?
- 如何防止出现
#VALUE!
错误?
编辑:
这些行是 hidden/unhidden 通过单击一系列带有宏代码的复选框:
Private Sub CheckBox1_Click()
Rows("13:17").Hidden = Not Rows("13:17").Hidden
End Sub
像这样更改您的代码:
Private Sub CheckBox1_Click()
Rows("13:17").Hidden = Not Rows("13:17").Hidden
ThisWorkbook.Worksheets("MySheet").Calculate
End Sub
其中 MySheet 是具有可见功能的 sheet 的名称。如果你有很多sheet的公式,重新计算整本书:
Private Sub CheckBox1_Click()
Rows("13:17").Hidden = Not Rows("13:17").Hidden
Application.Calculate
End Sub
这个对
Function isvisible(rng As Range)
isvisible = Not (rng.EntireColumn.Hidden Or rng.EntireRow.Hidden)
End Function
此功能与 INDIRECT()
结合使用效果很好。我在 A1
中有一个单元格引用,我正在使用 isvisible(INDIRECT(A1))
.
但是,当我隐藏 A1
所指的单元格(在另一个 sheet 上)时,我得到 #VALUE!
直到我进入公式栏并点击 return.
我的问题是:
- 为什么会这样?
- 如何防止出现
#VALUE!
错误?
编辑:
这些行是 hidden/unhidden 通过单击一系列带有宏代码的复选框:
Private Sub CheckBox1_Click()
Rows("13:17").Hidden = Not Rows("13:17").Hidden
End Sub
像这样更改您的代码:
Private Sub CheckBox1_Click()
Rows("13:17").Hidden = Not Rows("13:17").Hidden
ThisWorkbook.Worksheets("MySheet").Calculate
End Sub
其中 MySheet 是具有可见功能的 sheet 的名称。如果你有很多sheet的公式,重新计算整本书:
Private Sub CheckBox1_Click()
Rows("13:17").Hidden = Not Rows("13:17").Hidden
Application.Calculate
End Sub