在Excel 2013中,我定义了一个自定义函数CUSTOM_EQUITY
,它根据是否选中了复选框(表单控件)返回"EXTERNAL"
或"INTERNAL"
。当我按Enter键时它可以正常工作,但是当我单击复选框,选中或取消选中它时它不会自动更新。
使用强制更新Ctrl + Alt + F9 运行正常,但我无法在复选框时自动更新单元格点击。如您所见,我已尝试使用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
当复选框值更改时,如何自动重新计算函数?
答案 0 :(得分:1)
我不确定您是在谈论用户窗体中的 CheckBox ,但如果您只是将此行放在CheckBox_Change()
中:
Sheets("Your_Sheet_Name").Calculate
如果是 Excel CheckBox :
此代码:
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