如何从单元格值更新复选框状态

时间:2014-02-11 23:19:30

标签: vb.net excel checkbox

我一直在搜索,但我找不到任何关于这个:我正在编写一个基本的VBA表格,办公室使一些程序更容易,因为这个文件是共享的,但一次只能由一个人打开,我正在尝试使我的表单加载存储在某个Excel文件中的所有数据。除了从Cell B2:B13读取活动工作表中的值以更新Checkboxes(Tristate)状态之外,我已经能够做所有事情....对此有何帮助?我有一些文本框与复选框一样工作(几乎相同)并且可以解决它们...但是复选框需要检查状态来更改状态...

具体问题:如何根据ComboBox中所选索引的活动工作表中的ICheckBox1,通过ICheckbox12,根据单元格B2:B13的值更新...我的文本框中有这个并且完美地工作:

Private Sub ComboBoxCustomers_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBoxCustomers.SelectedIndexChanged 
  oXLSheet = oXLBook.Worksheets(ComboBoxCustomers.SelectedIndex + 1) 

  For i As Integer = 2 To 13
       Me.TabPage1.Controls("ITextBox" & (i - 1)).Text = oXLSheet.Cells(i, 1).value'("ICheckBox" & (i - 1)).CheckState = oXLSheet.Cells(i, 2).value 
  Next      
End Sub 

评论部分是我想要弄清楚的部分......谢谢!

1 个答案:

答案 0 :(得分:0)

您尝试使用的代码是正确的。 您只需在电子表格列中存储0,1,2,视具体情况而定。 使用以下替换:

  • 未选中= 0
  • Checked = 1
  • Indeterminate = 2

-

Private Sub ComboBoxCustomers_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBoxCustomers.SelectedIndexChanged
    oXLSheet = oXLBook.Worksheets(ComboBoxCustomers.SelectedIndex + 1)

    For i As Integer = 2 To 13
        CType(Me.TabPage1.Controls("ICheckBox" & (i - 1)), System.Windows.Forms.CheckBox).CheckState = oXLSheet.Cells(i, 2).value
    Next
End Sub