1

我正在使用一个包含 5 列的 excel 文件,每列都有一个不同的元素。我尝试创建一个 Columns 集合,其中该集合的每个元素将包含来自每列中的行的数据。我从这样的数组开始:

Dim Column(1 To 5) As ColumnsInFile
    Column(1) = Worksheets("Sheet1").Range("B2", Range("B2").End(xlDown))
    Column(2) = Worksheets("Sheet2").Range("C2", Range("C2").End(xlDown))
    Column(3) = Worksheets("Sheet3").Range("D2", Range("D2").End(xlDown))
    Column(4) = Worksheets("Sheet4").Range("E2", Range("E2").End(xlDown))
    Column(5) = Worksheets("Sheet5").Range("F2", Range("F2").End(xlDown))

稍后我想对每一列的内容一一执行一个函数。

我的问题是,我似乎可以为这一切编写一个更简单的代码——而且该代码无法告诉我某些东西没有定义。

我如何循环遍历每一列,以便对于每一列,代码将通过循环获取内容?不是定义 B2,而是更通用的东西,从第一列开始,到下一个,然后是下一个..原因,问题是,如果我有 400 列怎么办..我无法定义它那样的话。。时间太长了。。

4

1 回答 1

0

要定义您需要使用的变量,variant并且名称column是范围的属性,不应用作名称:

dim cols() as variant, lastrow as long, lastcol as long 

'find last row and column 
lastrow = cells.find("*", range("A1"), , , xlbyrows, xlprevious).row
lastcol = cells.find("*", range("A1"), , , xlbycolumns, xlprevious).column 

'define your columns
cols = range("A2").resize(lastrow - 1, lastcol)

dim c as long, R as Long 
'cycle through columns
for C = 1 To ubound(cols, 2) ' second dimension is columns

    'cycle through rows
    for R = 1 to ubound(cols, 1) ' first array dimension is rows.

        'do somthing with columns and rows
        debug.print cols(R, C)

    next R
next C 

更多阅读。

于 2013-04-07T05:18:48.343 回答