相同的combobox在不同的工作表上

我想这可能适用于Excel中的任何Form控件。 我有一个combobox从ControlData表中获取值。 我在另一个工作表中创build了一个Combo Box ,它引用了ControlData表单元的列表值。

我可以将该Combo Box对象复制到不同的工作表上,但是当我在一个工作表上更改该对象的属性(例如,更改值来自的范围)时,只会在更改属性的工作表上进行更改。 我想普遍地改变属性,所以我只需要做一次。

我怎么做?

但是当我改变一个工作表上的该对象的属性(比如说,改变值来自的范围),那么它只在我改变属性的工作表上得到改变。

您直接不能更改一个控件的属性,并期望属性自动更改为控件的其余部分。 如果它们全部引用相同的范围,那么在范围内所做的任何更改都将反映在其余的对象属性中。

说了这么一句话,是否有可能改变一个属性,并期待它被转移到其余的呢?

是的赶上是你将不得不使用VBA的。

要做到这一点,你将不得不写一个单独的macros,将循环所有表中的所有combobox,然后更改属性。

在下面的例子中,我只是要改变一个属性。 你将不得不为其他人pipe理。

 Sub Sample() Dim ws As Worksheet Dim shp As Shape For Each ws In ThisWorkbook.Sheets '~~> Loop through all the sheets For Each shp In ws.Shapes '~~> Since you copied the combo across, '~~> they will have the same name. Change as applicable If shp.Name = "Drop Down 1" Then '~~> Set their range shp.ControlFormat.ListFillRange = "Sheet1!A1:A20" End If Next Next ws End Sub