【问题标题】:Variable inside range method变量内范围法
【发布时间】:2018-02-22 15:43:05
【问题描述】:

我是新手,渴望了解如何操作背后的原因,我有一些 C 经验。我希望 VBA 中的这一行在 C 列中应用公式,包含与在另一列 A 中找到的数据相同的行数

为什么top方法失败,而bottom方法有效?

括号内的范围方法期望什么? (只有范围或字符串我应该让 Lrow 成为一个字符串?)

如何使用 Lrow 作为范围对象来实现这一点?

任何关于“VBA 看到某些东西时在想什么”的一般规则或提示(如在 C 中的 & = address of, * = value of 非常感谢)

Dim Lrow As Integer, twentyDayAVG As Double
' Set Lrow = Range("A3").End(xlDown)
Lrow = Range("C3").End(xlDown).Row
twentyDayAVG = Evaluate("=AVERAGE($A$2:$A$21)")


Range("C2:C" +Lrow+").Formula = "=A2-" & twentyDayAVG

'This one works fine 
Range("C2:C" & Range("A3").End(xlDown).Row).Formula ="=A2-" & twentyDayAVG 

【问题讨论】:

  • Range("C2:C" & Lrow)
  • Lrow = Range("A3").End(xlDown).Row
  • 另外,最好声明 Dim Lrow As Long 而不是 Integer
  • @ScottCraner 非常感谢先生

标签: excel syntax vba


【解决方案1】:

Range() 方法需要一个包含 A1 样式范围地址的字符串参数,或两个范围对象 - 矩形范围的左上角单元格和右下角单元格。

您可以连接字符串和变量以创建 A1 样式的地址字符串。请注意,VBA 中的连接运算符是 & 符号 (&)。

在 VBA 中,等号 (=) 用于测试等价性 (If A = B Then) 和赋值运算符 (MyVar = 5)。

要测试不等式,请使用<>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 2022-01-17
    • 2011-12-19
    • 2020-09-15
    • 1970-01-01
    相关资源
    最近更新 更多