【问题标题】:VSTO Excel, Save Combo Box Text, ComboBoxes Reset Upon Workbook Opening?VSTO Excel,保存组合框文本,组合框在工作簿打开时重置?
【发布时间】:2011-10-17 07:45:08
【问题描述】:

我在 Excel VSTO 解决方案中有几个组合框。组合是窗口形式的组合。

问题是我希望在用户重新打开电子表格时重新填充组合中的选定值。目前,我知道这些值与电子表格一起保存,我知道由于在同一台机器上开发和测试,我遇到了 ClickOnce 安装程序问题,我可以看到电子表格打开,安装程序去获取新的版本。在那段时间里,我看到了我想要的组合值。

但是,一旦自定义安装和电子表格初始化,组合重置为默认文本值。我可以想出几种方法来解决这个问题,包括使用缓存数据......有谁知道是否有一种简单的方法可以在电子表格打开时防止组合重置?

【问题讨论】:

    标签: excel vsto combobox


    【解决方案1】:

    我不知道这是否一定是最好的解决方案,但这就是我最终要做的。

    我首先将我的组合嵌入到单元格中。

    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
    

    如果其他人知道避免这种情况的更好方法,请告诉我:)

    【讨论】:

      猜你喜欢
      • 2019-03-15
      • 1970-01-01
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多