【问题标题】:Referring to a range based on variables in Excel?引用基于 Excel 中变量的范围?
【发布时间】:2019-12-16 03:08:48
【问题描述】:

我正在尝试将一个单元格设置为几个单元格的总和。

将被求和的单元格是可变的,并且基于其他事物(并且会在宏的每次迭代中发生变化)。

我进行了编码,以便我知道单元格所在的行,以及开始单元格的列和结束单元格的列(即,可能将 A600 到 A606 相加)。但是,我已将这些列和行分配设置为变量,例如 Y、Xstart 和 Xend。如何让总和选择完全由变量定义的单元格的这些范围?

这是我最初的猜测。

set rng = "=SUM(& Y & Xstart &, & Y & Xend &)"

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    在设置对对象的引用时使用 set。 Range.Formaula 接受一个字符串参数,“=Sum()”也是如此。

    Sub Example()
    
        Dim Xstart As Long, Xend As Long
        Dim TargetRange As Range, SumRange As Range
        Dim Y as string
        Y = "B"
    
        Xstart = 2
        Xend = 100
    
       Set SumRange = Range(" & Y &  & Xstart & ":" & Y & Xend)
       Set TargetRange = Range("A1")
    
       TargetRange.Formula = "=SUM(" & SumRange.Address & ")"
    
    End Sub
    

    【讨论】:

    • Y 是什么变量?不引用该列。
    • 我更新了我的答案,使 Y 成为变量。我们正在构建一个字符串以传递给目标范围的公式属性的主要内容。感谢您的复选标记!
    • 这不会为我编译,冒号突出显示并出现消息“编译错误:扩展:列表分隔符或)”。对于“设置 SumRange = ...”行。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    相关资源
    最近更新 更多