Visual Studio数组或列表框数据到Excel范围

我试图找出如何以编程方式编写从我的用户窗体的现有数组或ListBox数据集到Excel中定义的单元格区域。 我可以写一个单一的值到一个单元格,如下面的代码所示,但我有多个3000多行的arrays,我不能硬编码每一个。

Private Sub ExcelSave_click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles ExcelSave.Click Dim xlsWorkbook As Microsoft.Office.Interop.Excel.Workbook Dim xlsWorksheet As Microsoft.Office.Interop.Excel.Worksheet Dim xls As New Microsoft.Office.Interop.Excel.Application Dim resourcesFolder = "C:\DiffractionMonitorFiles\" Dim fileName = "DataSave MASTER.xlsx" Dim NewFileName = SampleNameTextBox.Text & ".xlsx" Dim todaysdate As String = String.Format("{0:MM/dd/yyyy}", DateTime.Now) 'open excel workbook "DataSave MASTER.xlsx" xlsWorkbook = xls.Workbooks.Open(resourcesFolder & fileName) 'open excel worksheet "Sheet1" xlsWorksheet = xlsWorkbook.Sheets("Data") 'enter data into specific cells xlsWorksheet.Cells(4, 2) = UserNameTextBox.Text xlsWorksheet.Cells(5, 2) = todaysdate xlsWorksheet.Cells(6, 2) = SampleNameTextBox.Text xlsWorksheet.Cells(7, 2) = EntranceUpDown.Value 

使用这段代码可以将数据写入excel范围,但是它会在每个单元格中写入一个值,而不是将相应的数组/列表框值写入适当的范围单元格。

  Dim i As Integer For i = dblAreas1(0) To dblAreas1.Length xlsWorksheet.Range("j17:j3085").Value = dblAreas1(i - 1) Next i 

如果有人能够帮助这个解决scheme,我将不胜感激! 我对VB非常陌生,并且通过search和论坛学到了我所知道的东西,所以我确信我的代码充满了怪癖,但是我很享受这个过程! 谢谢!

要做到这一点,你需要分别编写每个值。 这可以通过一个简单的循环完成:

 For i As Integer = 0 To dblAreas1.Length - 1 xlsWorksheet.Range("J" & (17 + i)).Value = dblAreas1(i) Next 

你的语法是非常正确的,你只是错过了迭代stream程。

请注意,我假设您想将dblAreas1数组的所有值写入J行,从第17行开始。 在这种情况下,我更新了迭代的界限以适应这个问题。