Python win32com VBA 用户窗体 object 标题 属性 已设置
Python win32com VBA UserForm object Caption property set
我正在尝试在 Python 中使用 Win32com 创建 Excel VBA 用户窗体。我可以将用户窗体添加到工作簿,我什至可以将控件添加到此窗体,但是我坚持更新用户窗体 object 本身的属性。例如:我可以使用下面的代码阅读标题 属性,但我没有设置它。
有谁知道如何使用 win32com 在 Python 中设置 VBA UserForm 属性?
我的代码:
import win32com.client as win32
com_object = win32.gencache.EnsureDispatch('Excel.Application')
xlFile = com_object.Workbooks.Open(Filename = 'MyExcelFileaPath.xlsx')
xlForm = xlFile.VBProject.VBComponents.Add(3)
print (xlForm.Properties('Caption')) #this works
xlForm.Properties('Caption') = 'Custom Caption' #this does not work - error: SyntaxError: can't assign to function call
xlForm.Properties.Caption = 'Custom Caption' #this does not work
最后,经过一周的研究、反复试验,我想出了一种设置 UserForm 对象属性的方法。正如我所怀疑的那样,答案有点愚蠢:
xlForm.Properties('Caption').Value = 'Custom Caption'
希望这有助于节省一些时间。
我正在尝试在 Python 中使用 Win32com 创建 Excel VBA 用户窗体。我可以将用户窗体添加到工作簿,我什至可以将控件添加到此窗体,但是我坚持更新用户窗体 object 本身的属性。例如:我可以使用下面的代码阅读标题 属性,但我没有设置它。 有谁知道如何使用 win32com 在 Python 中设置 VBA UserForm 属性?
我的代码:
import win32com.client as win32
com_object = win32.gencache.EnsureDispatch('Excel.Application')
xlFile = com_object.Workbooks.Open(Filename = 'MyExcelFileaPath.xlsx')
xlForm = xlFile.VBProject.VBComponents.Add(3)
print (xlForm.Properties('Caption')) #this works
xlForm.Properties('Caption') = 'Custom Caption' #this does not work - error: SyntaxError: can't assign to function call
xlForm.Properties.Caption = 'Custom Caption' #this does not work
最后,经过一周的研究、反复试验,我想出了一种设置 UserForm 对象属性的方法。正如我所怀疑的那样,答案有点愚蠢:
xlForm.Properties('Caption').Value = 'Custom Caption'
希望这有助于节省一些时间。