Excel 如何对两个范围地址之间的值求和

Excel 如何对两个范围地址之间的值求和,excel,vba,Excel,Vba,我有一个表格,在第20行的标题处有单词“Circuit”1,2,3..等。根据用户输入,每个“电路”标题下面的列数可变 我试图求这个表第38行的和,直到下一个“Circuito”+number参数开始。我能够检索我想要求和的每个范围的开始和结束。但是,我找不到一种方法来求和这些值 For j = 1 To NumCirc 'NumCirc is the number of circuits Set rgfound = Range("B20:BZ20").Find("Circuit " &

我有一个表格,在第20行的标题处有单词“Circuit”1,2,3..等。根据用户输入,每个“电路”标题下面的列数可变

我试图求这个表第38行的和,直到下一个“Circuito”+number参数开始。我能够检索我想要求和的每个范围的开始和结束。但是,我找不到一种方法来求和这些值

For j = 1 To NumCirc 'NumCirc is the number of circuits
    Set rgfound = Range("B20:BZ20").Find("Circuit " & j)
    a = rgfound.Offset(18, 0).Address 'this is the first value
    b = rgfound.End(xlToRight).Offset(18, -1).Address 'this is the last value
Next j
因为我找到了起点和终点,所以我希望把它们之间的一切都加起来。工作表。求和(a,b)仅对“a”和“b”求和,而不是对范围内的所有值求和


谁能告诉我怎么做?谢谢

您可以将
范围
s括在
范围
呼叫中-无需地址

a
b
更改为
Range
s和
设置它们

Dim a as Range
Set a = rgfound.Offset(18, 0)

Dim b as Range
Set b = rgfound.End(xlToRight).Offset(18, -1)
然后


其他注释

  • 您应该测试是否找到以下范围:

    Set rgfound = Range("B20:BZ20").Find("Circuit " & j)
    
    If Not rgfound Is Nothing Then
        Set a = ...
        Set b = ...
        ...     
    End If
    
  • 最佳做法是指定
    范围
    所在的工作表,除非您特别希望使用
    活动工作表
    ——目前暗示使用该工作表


  • WorksheetFunction.Sum(范围(a,b))
    -但将
    a
    b
    更改为
    Range
    s并
    设置它们(去掉
    .Address
    )。效果非常好,谢谢!!
    Set rgfound = Range("B20:BZ20").Find("Circuit " & j)
    
    If Not rgfound Is Nothing Then
        Set a = ...
        Set b = ...
        ...     
    End If