Как суммировать значения между двумя диапазонами адресов - PullRequest
0 голосов
/ 24 октября 2019

У меня есть таблица со словом «Circuit» 1,2,3..etc в заголовке в строке 20. Каждый заголовок «Circuit» имеет переменное число столбцов ниже, в зависимости от ввода пользователя.

Я пытаюсь суммировать строку 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

Так как я нашел начало и конец, я ожидаю суммировать все, что находится между ними. Worksheet.sum (a, b) суммирует только «a» и «b», но не все значения, находящиеся в диапазоне.

Может кто-нибудь дать мне представление о том, как это сделать? Спасибо!

1 Ответ

0 голосов
/ 24 октября 2019

Вы можете заключить Range s в вызове Range - адреса не нужны.

Измените a и b на Range s и Set их.

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

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

Затем

... WorksheetFunction.Sum(Range(a, b))

Другие примечания :

  1. Вам следует проверить, найден ли диапазон:

    Set rgfound = Range("B20:BZ20").Find("Circuit " & j)
    
    If Not rgfound Is Nothing Then
        Set a = ...
        Set b = ...
        ...     
    End If
    
  2. Лучше всего было бы указать, на каком рабочем листе Range включены, если вы специально не хотите работать с ActiveSheet - в настоящее время это подразумевается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...