【问题标题】:how to insert a value of an Excel cell into String array in VB.NET?如何将 Excel 单元格的值插入到 VB.NET 中的字符串数组中?
【发布时间】:2016-12-28 09:21:06
【问题描述】:

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

我的代码:

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

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

【问题讨论】:

标签: arrays excel vb.net


【解决方案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

【讨论】:

  • 非常感谢,这对我有用,它甚至解决了另一个问题哈哈:P。
  • 不用担心 - 您仍然应该考虑将异常中的文本添加到您的原始问题中,因为它可能会帮助将来遇到相同问题的其他人
【解决方案2】:

试试这个:

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

它对我有用。

祝你有美好的一天。

【讨论】:

    猜你喜欢
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多