【问题标题】:How to loop through cell values?如何循环遍历单元格值?
【发布时间】:2021-06-30 07:11:13
【问题描述】:

我一直在循环遍历单元格值。

这是关于通过使用VBA从Excel文件中导出数据来形成Word文件。

我想遍历某些单元格 (Ax ~ Ay) 并将这些单元格中的文本导出到 Word。

wDoc.Content.InsertAfter Range("A1")
wDoc.Content.InsertAfter Range("A2")
wDoc.Content.InsertAfter Range("A3")

我想循环遍历单元格 A1~ max.

我认为循环与其他类型的for循环类似,但我想不出如何只更改for循环中单元格的数字部分。

首先我认为这类似于将变量分配给单元格的数字部分,然后使用“for”但是它不起作用,因为我猜我为单元格分配了“”。

【问题讨论】:

    标签: excel vba loops


    【解决方案1】:

    只需从 1 到 3 循环(根据您要循环的行号

    Dim iRow As Long
    For iRow = 1 To 3
        wDoc.Content.InsertAfter ThisWorkbook.Worksheets("Sheet1").Range("A" & iRow).Value
    Next iRow
    

    请注意,如果没有指定应该在哪个工作簿和工作表中,则永远不要使用 Range

    【讨论】:

    • ... 或使用Cells-属性:ThisWorkbook.Worksheets("Sheet1").Cells(iRow, 1).Cells(iRow, "A")
    • @FunThomas 实际上,我不想更改命令以使 OP 更清楚如何解决此类问题,但是是的,在这种情况下我也更喜欢 cells,即使我认为这只是代码设计的问题。还是.Cells(iRow, "A").Range("A" & iRow) 有计算优势,我不知道(只是为了我的兴趣)?
    • 这种情况下,真的没关系。但是,是的,我总是更喜欢Cells(row, "A") 而不是.Cells(row, 1)。想象一下,试图直观地查看.Cells(row, 1045) 指的是哪一列? :D 但总的来说Range 函数比使用Cells 强大得多。它允许您一次引用单个单元格或特定范围的单元格。 Range(Cells(r1,c1),Cells(r2,c2)).
    • 没有真正的优势。您需要字符串连接来获取范围地址,并且在后台 Excel 需要将此地址分离回行号和列号,但开销是如此之小,以至于我怀疑您是否可以测量它。
    猜你喜欢
    • 2021-06-28
    • 1970-01-01
    • 2011-10-18
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多