选择/分配多个列和行到阵列

时间:2015-04-28 05:41:53

标签: excel vba excel-vba

我的列结构类似于下面的

   Author   Book
    ----    ----
    ----    ----
    Vicky   Book1
    Vicky   Book2
    Giri    Book1
    Giri    Book3

基于其他列数据,author列位于column BBook可能位于任何列

我想在这两列中选择值

我试过

fileArray = Range("B4:B" & finalRow & "," & endColumn).Value

这里第一部分工作正常,finalRow包含哪个记录在那里的行号,而endColumn是书籍详细信息可用的地方

如果我使用

fileArray = Range("B4:B" & finalRow )

它正在获取值,但是当我尝试添加一个列时,它会抛出错误

我也试过以下一个

fileArray = Range("B4:B9,S4:S9").Value

但它没有获得S4:S9

的值

如何获得所需的值?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

Dim fileArray
Dim finalRow As Long
Dim targetCol As Long

With Sheets("SheetName") ' change to your actual sheet name
    finalRow = .Range("B" & .Rows.Count).End(xlUp).Row
    ' assuming "Book" is the column header and headers are in 3rd row
    ' find the correct column number
    targetCol = .Range("B3").EntireRow.Find("Book").Column
    fileArray = Array(.Range("B4:B" & finalRow), _
                .Range(.Cells(2, targetCol), .Cells(finalRow, targetCol)))
End With

获取值:

Debug.Print fileArray(0)(1) ' returns Vicky
Debug.Print fileArray(1)(1) ' returns Author1

所以它就像第一个括号内的数字是列号,第二个是行。