{{1}}
我勾选了表单上的复选框(checkbox2),然后列出了listbox1。我在"修订日期"中输入了一个日期列表。工作表,从A3开始。我希望我的代码读取该列并将这些值传输到列表框。 我运行代码时没有收到任何错误,但是我的表单上的列表框没有显示日期(例如01/01/2018),而是" system._comobject"
有什么建议吗?
谢谢。
答案 0 :(得分:3)
ListBox1.Items.Add(xlWorkSheet.Cells(i, 1))
这是添加Range
成员调用返回的Cells
对象。如果你想添加单元格的Value
,那么你需要明确它,因为我不认为.net interop尊重默认/隐式成员调用VB6 / VBA / COM的方式。
ListBox1.Items.Add(xlWorkSheet.Cells(i, 1).Value)
答案 1 :(得分:0)
使用CType将对象转换为excel对象。
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim i As Integer = 3
xlApp = New Excel.Application
xlWorkBook = xlApp.Workbooks.Open("C:\Users\JDoe\Documents\Ben's Project\Food.xlsx")
xlWorkSheet = xlWorkBook.Worksheets("Revision Dates")
If CheckBox2.Checked = True Then
Panel2.Show()
CheckBox1.Enabled = False
ListBox1.Show()
Label3.Show()
'istBox1.Items.Add(xlWorkSheet.Range("A1", "A14").Value)
Do
ListBox1.Items.Add(CType(xlWorkSheet.Cells(i, 1), excel.Range).Value))
i += 1
Loop Until CType(xlWorkSheet.Cells(i, 1), excel.Range).Value) = "01/01/01"
Else
Panel2.Hide()
ListBox1.Hide()
Label3.Hide()
CheckBox1.Enabled = True
End If
End Sub