我不知道这是否一定是最好的解决方案,但这就是我最终要做的。
我首先将我的组合嵌入到单元格中。
Friend WithEvents cmbType
Private Sub EmbedCombo()
cmbType = Me.Controls.AddComboBox(Me.Range("A7"), "cmbType")
End Sub
然后我创建了一个 sub 来将 Combo Text 的值写回控件所在的单元格中。
Private Sub SaveComboText()
Me.Range("A7").Value = Me.cmbType.Text
End Sub
最后是一个将单元格值写回组合的例程。
Private Sub LoadComboText()
Me.cmbType.Text = Me.Range("A7").Value
End Sub
为了使这一切正常工作,我使用了 WorkBoook BeforeSave 事件和 WorkSheet.StartUp 事件。
第一个
Private Sub ThisWorkbook_BeforeSave() Handles Me.BeforeSave
Globals.Sheet1.StoreComboValues()
End Sub
然后
Private Sub Sheet1_Startup() Handles Me.Startup
Call LoadComboText()
End Sub
如果其他人知道避免这种情况的更好方法,请告诉我:)