为什么只有在xlwings中执行代码后才会更新复选框?

时间:2014-12-12 11:27:35

标签: python excel xlwings

我有一个xslm文件,其中一个宏分配给一个按钮和一个复选框。按下按钮,运行python脚本的宏并将数据插入到工作表中。问题是在宏中我禁用了复选框,但在宏完成之前它不会影响复选框。

下面是一个示例宏:

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

1 个答案:

答案 0 :(得分:0)

这似乎是一个Excel“功能” - 在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电话一起更新复选框。