使用多张地址中的地址自动填充范围?

时间:2015-11-19 22:46:25

标签: excel vba excel-vba

我正在尝试用自动填充替换foreach循环,以期加快速度。如何用Sheet(1)和Sheets(2)替换FormulaR1C1行中的特定工件名称(在本例中为“Sheet1”和“Sheet2”?)工作表名称不一定总是“Sheet1”和“Sheet2”所以我宁愿参考这些表,而不必使用特定的名称。

ActiveCell.FormulaR1C1 = "=('Sheet1'!RC-'Sheet2'!RC)/'Sheet2'!RC"
Selection.AutoFill Destination:=Range("D2:Z2"), Type:=xlFillDefault

这是我目前拥有的foreach循环,希望它有助于阐明我正在尝试做的事情:

Set rng1 = Range(Cells(2, 4), Cells(rowcount1, colcount1))

For Each cell In rng1
    address = cell.address
    val1 = Sheets(1).Range(address).Value
    val2 = Sheets(2).Range(address).Value
    If val1 = 0 Then
        cell.Value = 0
    ElseIf val1 = 0 And val2 = 0 Then
        cell.Value = 0
    Else
        cell.Value = (val2 - val1) / val1
    End If
Next cell

rowcount1和colcount1是Sheets(3)的rows.count和columns.count。

任何有助于我改进代码的建设性意见(不一定回答我的问题)也是受欢迎的。谢谢你的阅读。

0 个答案:

没有答案