【发布时间】:2020-07-15 19:22:34
【问题描述】:
所以我有一个引用工作簿中特定单元格的宏。如何在不手动输入单元格引用五十次的情况下在接下来的五十列中重复此宏?
如果我只是使用 excel 公式而不是 VBA,我可以单击并拖动以自动重复下一列中的公式。我希望保持不变的单元格引用定义为 $absolute$ 引用。但是在 VBA 中我不知道该怎么做。
代码如下:
If Worksheets("Enter Data Here").Range("D11") = "" Then
Worksheets("SDS").Range("R5") = Worksheets("SDS").Range("R5") & ""
ElseIf Worksheets("Enter Data Here").Range("D11") = "/" Then
Worksheets("SDS").Range("R5") = Worksheets("SDS").Range("R5") & ";" & Worksheets("Enter Data Here").Range("D10")
ElseIf Worksheets("Enter Data Here").Range("D11") = "//" Then
Worksheets("SDS").Range("R5") = Worksheets("SDS").Range("R5") & ";" & Worksheets("Enter Data Here").Range("D10") & "x2"
ElseIf Worksheets("Enter Data Here").Range("D11") = "///" Then
Worksheets("SDS").Range("R5") = Worksheets("SDS").Range("R5") & ";" & Worksheets("Enter Data Here").Range("D10") & "x3"
End If
Worksheets("SDS").Range("R5") 是绝对单元格引用并且不会更改,但我希望其他人无需键入即可转移到下一列。例如D 变为 E,然后变为 F。
必须有一种节省劳动力的方法来做到这一点。也许循环?
干杯。
【问题讨论】:
-
Offset,或使用Cells代替Range并循环递增列。 -
你是不是每次都加一个“/”?
-
否,“/”表示已安排测试,因此需要在 R5 中绘制测试名称 (D10)。最多只有三个测试,所以不要超过 3 x ///。
-
所以你有四个 D 子句,然后是 E 等 4 个子句?
-
是的!从字面上看,只需要移动到右侧的单元格。 D11 变成 E11 等等,D10 变成 E10...
标签: excel vba loops reference cell