Vb.net Visual Studio阵列或列表框数据到Excel范围

Vb.net Visual Studio阵列或列表框数据到Excel范围,vb.net,excel,visual-studio-2013,Vb.net,Excel,Visual Studio 2013,我正在尝试找出如何通过编程将现有数组或列表框数据集从我的UserForm写入Excel中定义的单元格范围。我可以将单个值写入单个单元格,如下面的代码所示,但我有多个3000多行的数组,无法对每个数组进行硬编码 Private Sub ExcelSave_click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles ExcelSave.Click Dim xlsWorkbook As M

我正在尝试找出如何通过编程将现有数组或列表框数据集从我的UserForm写入Excel中定义的单元格范围。我可以将单个值写入单个单元格,如下面的代码所示,但我有多个3000多行的数组,无法对每个数组进行硬编码

    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

如果有人能够帮助解决这个问题,我将不胜感激!我对VB非常陌生,通过搜索和类似的论坛了解了我所知道的,所以我确信我的代码充满了怪癖,但我很享受这个过程!谢谢大家!

要完成此操作,需要分别写入每个值。这可以通过一个简单的循环来完成:

For i As Integer = 0 To dblAreas1.Length - 1
    xlsWorksheet.Range("J" & (17 + i)).Value = dblAreas1(i)
Next
您的语法非常正确,只是错过了迭代流程


注意,我假设您希望将
dblAreas1
数组的所有值写入列
J
中,从第
17行开始。在这种情况下,我更新了迭代的边界以适应这种情况。

Hmm,我刚刚将代码添加到我的项目中,运行时给了我一个提示:“DiffractionMonitor.exe中发生了'System.Runtime.InteropServices.COMException'类型的未处理异常附加信息:来自HRESULT的异常:0x800A03EC”@JonathanSawn-此循环将取代上面发布的
循环的
。假设
xlsWorksheet
是有效的Excel工作表,它应该可以工作。为了确保
17+
偏移量在
范围内
求值吗?您假设正确,代码运行良好!谢谢你的帮助@乔纳森镇-很高兴它起作用了。我在发布我的答案后立即发现了这一点,所以我很快编辑了它。你一定看到了原来的帖子,而不是修改过的。干杯