Excel VBA:单元格引用

时间:2017-12-06 18:15:54

标签: excel-vba vba excel

我的细胞参考有问题,我不知道是否存在解决方案。

使用VBA代码我使用语法将对不同单元格的引用写入单元格:

activecell.formula = "=" & Cells(A1).address

现在我需要为数千个单元格复制此公式。每个单元格应引用顺序cell (A1,A2,A3....A120..)

我遇到的问题是使用

Cells(A1).address

它修复了Cells(A1)。当我使用自动填充功能时,我有数千个单元都引用相同的cells(A1),而我需要引用是动态的,并且每次引用下一个cell (A2,A3,A4..)。我需要使用自动填充功能,因为如果我使用loop和固定参考在每个单元格上编写公式,则代码运行需要数小时(如前所述,有数千个单元格)

然后我应该使用相对参考格式:

activecell.formulaR1C1 = ...

但是细胞(A1)并不总是与我的活细胞相同。

通过VBA我可以计算每次来自activecell的距离,但如何以R1C1表示法使用此数据?

所以,让我们说使用

row.count

函数我可以计算我要引用的第一个单元格,(此时间)在第100行和第3列。所以,我有:lastrow = 100,column = 3.请注意,行100有所不同每次我运行宏。我的activecellcells(5,5)

这是我想要使用的:

Sub problemsolved ()

Dim lastrow as string
Dim RowL as string
Dim CoL as string

lastrow = activesheet.cells(rows.count, 1).End(xlUp).row


cells(5,5).select

Rol = lastrow - 5
Col = 3 -5


activecell.formulaR1C1 = "=R[Rol]C[Col]"

selection.autofill Destination:=Range(cells(5, 5), cells(10005, 5))

end sub

假设lastrow = 100 我需要得到以下结果:

cell(5,5): =cells(100,3)
cell(6,5): =cells(101,3)
cell(7,5): = cells(102,3)
.....
cell(10005,5): = cells(10100,3)

当然,我已尝试过语法:

activecell.formulaR1C1 = "=R[lastrow]C[3]"

但它没有用,所以我该怎么做? 有谁有想法?

感谢

1 个答案:

答案 0 :(得分:0)

使用:

callbackFunction(dashboard)

无需自动填充

所以

With ActiveSheet
    .Range(.Cells(5,5),.Cells(10005,5)).FormulaR1C1 = "=R[" & RowL & "]C[" & col & "]"
End With