Excel VBA: 基于复选框输入的用户自定义函数不重新计算
Excel VBA: User defined function based on checkbox input not recalculating
在 Excel 2013 年,我定义了一个自定义函数 CUSTOM_EQUITY
,其中 returns "EXTERNAL"
或 "INTERNAL"
基于复选框(表单控件)是否被选中。当我按回车键时它工作正常,但当我单击复选框、选中或取消选中它时它不会自动更新。
使用 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
如何让我的函数在复选框值更改时自动重新计算?
我不确定您是在谈论用户窗体中的 CheckBox,但是如果您只是将此行放在 CheckBox_Change()
中:
Sheets("Your_Sheet_Name").Calculate
如果它是 Excel CheckBox :
- 添加链接单元格(这里是 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
在 Excel 2013 年,我定义了一个自定义函数 CUSTOM_EQUITY
,其中 returns "EXTERNAL"
或 "INTERNAL"
基于复选框(表单控件)是否被选中。当我按回车键时它工作正常,但当我单击复选框、选中或取消选中它时它不会自动更新。
使用 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
如何让我的函数在复选框值更改时自动重新计算?
我不确定您是在谈论用户窗体中的 CheckBox,但是如果您只是将此行放在 CheckBox_Change()
中:
Sheets("Your_Sheet_Name").Calculate
如果它是 Excel CheckBox :
- 添加链接单元格(这里是 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