为什么只有在xlwings中执行代码后才能更新checkbox?

我有一个分配给button和checkbox的macros的xslm文件。 按下这个button,运行一个python脚本的macros,并将数据插入到一个表单中。 问题是,在macros中我禁用了checkbox,但它不影响checkbox,直到macros完成。

下面是一个macros的例子:

def insert_data(): wb = Workbook.caller() wb.xl_workbook.ActiveSheet.OLEObjects("Checkbox1").Object.Enabled = False data = pd.read_csv("data.csv") Range("A1").value = data 

这似乎是一个Excel的“function” – 在VBA中试试这个:

 Sub Macro1() ActiveSheet.OLEObjects("CheckBox1").Object.Enabled = False Application.Wait (Now + TimeValue("0:00:5")) 'Sleep for 5 Seconds Range("A1").Value = "Some data" End Sub 

它只是在Wait过程和Range调用之后更新checkbox。