如何在VB.NET中将Excel单元格的值插入到String数组中?

时间:2016-12-28 09:21:07

标签: arrays excel vb.net

我需要帮助, 我想将excel单元格的值插入数组(String数组) 怎么做 ?

我的代码:

Dim DB_Columns(5) As String 'Columns values Array
Dim i As Integer
Dim tmp_col As String
For i = 0 To 5
    tmp_col = worksheet1.Cells(0, i).value
    DB_Columns(i) = tmp_col
    i = i + 1
Next

每次运行代码时我都会遇到异常。

2 个答案:

答案 0 :(得分:1)

不确定它是否会解决您的问题,因为您实际上没有告诉我们异常是什么 - 但您在代码中手动递增i,即使它已经在For循环中。这意味着你要提前退出循环。

此外 - Cells(0, i)将导致异常,因为Cells集合未归零。它需要行和列索引(没有行/列“0”)。

最后,您没有向我们展示您分配worksheet1的位置 - 除非您有对工作簿的引用设置,否则您可能需要明确限定它(这是一个很好的习惯,无论如何进入)

FWIW这就是我编写代码的方式:

Dim worksheet1 As Excel.Worksheet = MyXLApp.Workbooks("My Workbook.xlsx").Sheets(1) '// For Example
'// or alternatively something like
'// Dim worksheet1 As Excel.Worksheet = MyXLApp.ActiveWorkbook.Sheets(1)

Dim DB_Columns(0 To 5) As String

For i = LBound(DB_Columns) To UBound(DB_Columns)
    DB_Columns(i) = worksheet1.Cells(1, i + 1).value '// Notice I've added 1 to "i" to prevent an exception as rows/columns start from 1
Next

你实际上可以在没有循环的情况下执行此操作:

Dim DB_Columns() As String

DB_Columns = worksheet1.Cells(1, 1).Resize(1, 5).Value

答案 1 :(得分:-1)

试试这个:

tmp_col = worksheet1.Cells.Cells(0, i).value

它对我有用。

度过愉快的一天。