【问题标题】:Excel Vba 2007: use reference inside countifsExcel Vba 2007:在计数中使用引用
【发布时间】:2010-06-30 12:11:29
【问题描述】:

我有这个:

ActiveCell.Formula = "=COUNTIFS(G$4:G$" & (i - 1) & _
                     ", Sheets(ActiveSheet.Name).Cells(3, 25).Value ,F$4:F$" & (i - 1) & _
                     ",J4)"

我想用这个:Sheets(ActiveSheet.Name).Cells(3, 25)

这样我就可以循环扫描列。因为这个参考单元必须是固定的。但我有错误,它不起作用。

请任何人帮助我。非常感谢

【问题讨论】:

  • err... 应该是这样的:ActiveCell.Formula = "=COUNTIFS(G$4:G$" & (i - 1) & ", Sheets(ActiveSheet.Name).Cells(3 , 25).Value ,F$4:F$" & (i - 1) & ",J4)" 但还是不行:(

标签: vba excel excel-2007


【解决方案1】:

是什么阻止您使用实际地址$Y$3


编辑

啊。你说你想修复这个值,所以我想......

那么,你不只是做你在公式的其余部分已经做的完全相同的事情吗?

ActiveCell.Formula = "=COUNTIFS(G$4:G$" & (i - 1) & _ 
                     ", " & _
                     ActiveSheet.Cells(3, 25).Address(True, True, xlA1) & _
                     ", F$4:F$" & (i - 1) & _ 
                     ", J4)" 

【讨论】:

  • 因为我在循环中使用它,下一个循环,它将引用下一列,所以我想使用单元格(m,n)以便我可以在循环中增加 n
  • 如果我使用 $Y$3 那么我不知道如何将 Y 增加到 Z
【解决方案2】:

您可以对字母使用 =CHAR() 和 =CODE()。 “A”可以用=CHAR(65)来表示,所以任何一个字母都是64+(英文字母),所以Y =CHAR(89)。

如果你想从 "Y" 上移一列,你可以使用 CHAR(CODE("Y")+1) = "Z"。

此外,CHAR(cells.column) 会为您提供列字母(假设您使用的是整张工作表)。

希望这是有道理的。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多