Excel VBA:基于checkboxinput的用户定义函数不重新计算
在Excel 2013中,我定义了一个自定义函数CUSTOM_EQUITY
,根据是否选中checkbox(表单控件),返回"EXTERNAL"
或"INTERNAL"
。 当我按下回车键时它可以正常工作,但是当我点击checkbox时,它不会自动更新,选中或取消选中它。
使用Ctrl + Alt + F9强制更新可以完美地工作,但是当单击checkbox时,我无法自动更新单元格。 正如你所看到的,我已经尝试了Application.Volatile
。
Function CUSTOM_EQUITY() Application.Volatile Application.Calculation = xlCalculationAutomatic Dim taxesExt As Boolean taxesExt = ActiveSheet.Shapes("TAXES_EXT").ControlFormat.Value = 1 If taxesExt Then CUSTOM_EQUITY = "EXTERNAL" Else CUSTOM_EQUITY = "INTERNAL" End If End Function
当checkbox值更改时,如何使我的函数自动重新计算?
我不确定你在说UserForm中的CheckBox ,但是如果你只是把这行放在CheckBox_Change()
:
Sheets("Your_Sheet_Name").Calculate
如果它是一个Excelcheckbox :
- 添加一个链接的单元格(这里是在C1)
- 将其放置在工作表模块中
此代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Application.Intersect(Target, Range("C1")) Is Nothing Then 'Nothing Else Sheets("Your_Sheet_Name").Calculate End If End Sub