从Excel导入checkbox设置

我有一个Excel工作表,其中有14个条目与checkbox。 我想在Visual Basic中将这些checkbox的状态读入相应的checkbox。 然而,我正在为这个访问而苦恼。 我相信我只能通过名称访问Excel工作表中的checkbox,因为我不认为他们有像Visual Basiccheckbox那样的索引,所以我想我必须单独检查全部14个。 所以有两个问题:

1)是真的我必须引用Excelcheckbox的名称,因为它们没有关联到一个特定的索引,正确(这也意味着14个单独的行的访问,而不是某种forms的循环)?

2)我怎样才能将checkbox的值读入我的Vsual Basic程序? 我试过这个:

Dim oExcel As Excel.Application Dim oBook As Excel.Workbook Dim oSheet As Excel.Worksheet oExcel = New Excel.Application 'Create a new instance of Excel oExcel.Workbooks.Open("C:\QA Controller Test Files\" & SelectController.Text & ".xlsm") oSheet = oExcel.Worksheets(1) Dim checked As Boolean = oSheet.Shapes("Verify USB Revision Reporting").ControlFormat.Value If checked Then TestSelection.CheckedItems(1) = True 

我得到一个错误消息,说“接口'Microsoft.Office.Interop.Excel.Shapes'不能被索引,因为它没有默认属性。

你必须遍历工作表中的所有形状,并testing每一个形状,以确保你有一个checkbox。 这里是一个例子(我没有在我的工作站上的Visual Basic,但这应该工作):

 Option Explicit Sub GetCheckBoxes() Dim oSheet As Worksheet Dim oShape As Shape Set oSheet = ActiveSheet For Each oShape In oSheet.Shapes If (oShape.Type = msoFormControl) And (oShape.FormControlType = xlCheckBox) Then If oShape.ControlFormat.Value = 1 Then Debug.Print "box '" & oShape.Name & "' is checked!" Else Debug.Print "box '" & oShape.Name & "' is not checked!" End If End If Next oShape End Sub