我的列结构类似于下面的
Author Book
---- ----
---- ----
Vicky Book1
Vicky Book2
Giri Book1
Giri Book3
基于其他列数据,author
列位于column B
,Book
列可能位于任何列
我想在这两列中选择值
我试过
fileArray = Range("B4:B" & finalRow & "," & endColumn).Value
这里第一部分工作正常,finalRow
包含哪个记录在那里的行号,而endColumn是书籍详细信息可用的地方
如果我使用
fileArray = Range("B4:B" & finalRow )
它正在获取值,但是当我尝试添加一个列时,它会抛出错误
我也试过以下一个
fileArray = Range("B4:B9,S4:S9").Value
但它没有获得S4:S9
如何获得所需的值?
答案 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
所以它就像第一个括号内的数字是列号,第二个是行。