我需要帮助, 我想将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
每次运行代码时我都会遇到异常。
答案 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
它对我有用。
度过愉快的一天。