Python 选择列表框上的项目

Python 选择列表框上的项目,python,xlwings,Python,Xlwings,我试图通过编程方式从列表框中选择项。在VBA上,我将执行以下操作: Sheet1.MyListBox.Selected(0) = True 或取消选择 Sheet1.MyListBox.Selected(0) = False 使用XLwings,我可以通过执行以下操作轻松检查是否选择了某个项目: >> wb.Sheets(1).api.MyListBox.Selected(0) True 但是如果我尝试分配一个值,我会得到一个错误: wb.Sheets(1).api.MyLis

我试图通过编程方式从列表框中选择项。在VBA上,我将执行以下操作:

Sheet1.MyListBox.Selected(0) = True
或取消选择

Sheet1.MyListBox.Selected(0) = False
使用XLwings,我可以通过执行以下操作轻松检查是否选择了某个项目:

>> wb.Sheets(1).api.MyListBox.Selected(0)
True
但是如果我尝试分配一个值,我会得到一个错误:

wb.Sheets(1).api.MyListBox.Selected(0) = True
  File "<ipython-input-156-9ef416a5660f>", line 1
    wb.Sheets(1).api.MyListBox.Selected(0) = True
                                                 ^
SyntaxError: can't assign to function call
wb.Sheets(1.api.MyListBox.Selected(0)=True
文件“”,第1行
wb.Sheets(1).api.MyListBox.Selected(0)=True
^
SyntaxError:无法分配给函数调用
希望有人能帮忙

PS:我发现,如果您处于设计模式(在Excel工具栏上选中),出于某种原因,即使第一行也无法在Python上工作

评论:如果。。。该方法未实现。。。使用
ListBox.Selected(0)=True
并发现使用xlwings是不可能的

当前库中没有
列表框。已选择(Int32)
。 因此,我假设它必须在
xlwings
中实现才能使用。
使用
.api
界面,您只能使用库提供的任何内容


问题:从列表框中以编程方式选择项目

选择或清除列表框中指定项目的选择。
参数
索引
类型:System.Int32
列表框中项目的从零开始的索引,用于选择或清除所选内容。
类型:System.Boolean
true以选择指定的项目;否则,错误

评论:如果。。。该方法未实现。。。使用
ListBox.Selected(0)=True
并发现使用xlwings是不可能的

当前库中没有
列表框。已选择(Int32)
。 因此,我假设它必须在
xlwings
中实现才能使用。
使用
.api
界面,您只能使用库提供的任何内容


问题:从列表框中以编程方式选择项目

选择或清除列表框中指定项目的选择。
参数
索引
类型:System.Int32
列表框中项目的从零开始的索引,用于选择或清除所选内容。
类型:System.Boolean
true以选择指定的项目;否则,错误


非常感谢!这就成功了。如果由于某种原因该方法没有实现呢?然后,我将不得不使用
ListBox.Selected(0)=True
并发现使用xlwings是不可能的…可以执行“wb.Sheets(1).api.MyListBox.Selected(0)”并根据该项的状态获取“True”或“False”。但在VBA上,您可以通过“MyListBox.Selected(0)=True”指定值,这是使用xlwings无法实现的。您使用另一种方法(SetSelected)解决了这个问题,这很好,因为我不知道它的存在!我最后的评论是一个关于如果你发现自己被迫使用“wb.Sheets(1.api.MyListBox.Selected(0)=True”(例如,因为SetSelected不存在)该怎么办的问题。@Yona:为什么要强迫你?
.Selected(0)
仅存在于VBA中这一事实可能是历史的,也可能是未来的,只有MS知道原因。非常感谢!这就成功了。如果由于某种原因该方法没有实现呢?然后,我将不得不使用
ListBox.Selected(0)=True
并发现使用xlwings是不可能的…可以执行“wb.Sheets(1).api.MyListBox.Selected(0)”并根据该项的状态获取“True”或“False”。但在VBA上,您可以通过“MyListBox.Selected(0)=True”指定值,这是使用xlwings无法实现的。您使用另一种方法(SetSelected)解决了这个问题,这很好,因为我不知道它的存在!我最后的评论是一个关于如果你发现自己被迫使用“wb.Sheets(1.api.MyListBox.Selected(0)=True”(例如,因为SetSelected不存在)该怎么办的问题。@Yona:为什么要强迫你?
.Selected(0)
仅存在于VBA中这一事实可能是历史的,也可能是未来的,只有MS知道原因。
wb.Sheets(1).api.MyListBox.SetSelected(0, True)