使用VBA将具有所有特性的组件(组合框)复制到其他组件中
我想知道如何将所有属性从一个组件复制到同一类型的另一个组件。我可以更好地解释: 我在Access 2010中有一个UI,我在表单_Load()中设置了表单所有组合框的属性,如下所示:使用VBA将具有所有特性的组件(组合框)复制到其他组件中,vba,ms-access,combobox,ms-access-2010,Vba,Ms Access,Combobox,Ms Access 2010,我想知道如何将所有属性从一个组件复制到同一类型的另一个组件。我可以更好地解释: 我在Access 2010中有一个UI,我在表单_Load()中设置了表单所有组合框的属性,如下所示: For Each cCont In Me.Controls If TypeName(cCont) = "ComboBox" Then cCont.RowSourceType = "Value List" End If Next cCont 然后我在不同的组合框中添
For Each cCont In Me.Controls
If TypeName(cCont) = "ComboBox" Then
cCont.RowSourceType = "Value List"
End If
Next cCont
然后我在不同的组合框中添加他们的信息:
cbUiUnit.AddItem "°C"
cbUiUnit.AddItem "°F"
cbTxUnit.AddItem "°C"
cbTxUnit.AddItem "°F"
cbUiUnit.DefaultValue = "cbUiUnit.ItemData(0)"
cbTxUnit.DefaultValue = "cbTxUnit.ItemData(0)"
我想这样做更自动,因为每一个单位的变化,我需要做两次。我可以像以前一样为我的每个cCont.Controls做另一个,但问题是我的组合框不止这两个;都有不同的价值观
在设置了cbUiUnit
的所有数据后,我尝试执行cbTxUnit=cbUiUnit
,但它只将cbUiUnit.Value
复制到cbTxUnit
中。因此,所有添加的项目都不存在于cbTxUnit
中
谢谢您应该制作一个函数来为您完成这项工作
Private Function PopulateCombobox(inCbo as ComboBox)
inCbo.AddItem "°C"
inCbo.AddItem "°F"
inCbo.DefaultValue = inCbo.name & ".ItemData(0)"
End Function
那么你可以这样称呼它
PopulateCombobox cbUiUnit
PopulateCombobox cbTxUnit
然后,您需要进行的任何更改都可以普遍应用,并且acer位于中心位置。某些属性是“只读”的,因此您不能复制“全部”。有多少个组合框需要更改?如果我能将DefaultValue和添加的项目从一个组合框复制到另一个组合框,我已经很高兴了。它只有两个组合框cbUiUnit
和cbTxUnit
,但主要问题是我需要经常更改这些单位,这取决于对另一个组合框的选择(重量、速度、温度、距离…),谢谢!工作起来很有魅力@EricPb不客气,我看到了你的编辑,对它做了一些修改。