【发布时间】:2016-10-25 15:33:36
【问题描述】:
首先,如果这是一个愚蠢的问题,我深表歉意,但我无法在网上任何地方找到答案。我有一个问题要问任何熟悉使用 vba 将相对公式更改为绝对公式的人。
我现在的问题是,我的绝对公式是通过计算其他列(C 列)的不同单元格条件的行差异来确定的,因为我使用 vba 在列(B 列)中输入了多个公式。因此,我想要实现的绝对公式是不可预测的,并且在不断变化。
Set Rng = Range(Cells(2, 3), Cells(lastrow, 3))
Range("B2").Select
startb = lastrow
For b = lastrow To 2 Step -1
If Cells(b, 3) <> Cells(b - 1, 3) Then
endb = b
rowdiff = startb - endb
Cells(end, 2).Select
ActiveCell.FormulaR1C1 = "=Countif(RC[-1]:R[" & rowdiff & "]C[-1],RC[-1])"
ActiveCell.Formula = Application.ConvertFormula(Formula:=ActiveCell.Formula, fromreferencestyle:=Application.ReferenceStyle, toabsolute:=xlAbsolute)
Selection.Copy
Range(Cells(startb, 2), Cells(endb, 2)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next b
正如你们所看到的,我有一个可以立即将相对公式转换为绝对公式的代码行。不幸的是,在我的 COUNTIF 公式中,我想要一个绝对范围(逗号之前的部分)但一个相对标准(在这种情况下,逗号之后的 RC[-1])。
我可以做些什么来将部分公式转换为绝对公式?还是没有这种东西?非常感谢任何帮助和建议。如果我以完全错误的方式这样做,请告诉我。
感谢您的阅读和您的时间。
【问题讨论】:
-
你的代码运行没有问题吗?在
end之后不能调用任何变量。您使用名为lastRow的变量作为列 索引。您的代码的实际目标是什么? -
抱歉所有的错别字。我已经进行了相应的编辑。我之前将字符串的名称更改为更短的名称,因为变量名称在我的代码中太长了。忘记了不可能使用“end”作为变量。此代码运行没有问题。
-
查看我发布的答案