Вызов диапазонов как строки с динамической переменной - PullRequest
0 голосов
/ 10 декабря 2018

Я получил код здесь, исследуя, как добавлять ячейки на основе критериев в определенный диапазон.Это был код:

Dim rng1 As Range
Dim rng2 As Range
Dim c As Range
Set rng1 = Range("N1:N10")

 For Each c In rng1
' Add cells to rng2 if it is highlighted with a certain color
If c.Interior.ColorIndex = 43
    If Not rng2 Is Nothing Then
        Set rng2 = Union(rng2, c)
    Else
    ' the first valid cell becomes rng2
        Set rng2 = c
    End If
End If
Next

Что я планирую сделать с найденной ячейкой, так это получить значение и добавить его.Мой первоначальный план состоял в том, чтобы использовать формулу SUM (), где диапазон суммы является предполагаемым rng2.Для того, чтобы я мог поместить это в эту формулу, я должен был бы извлечь ячейки из найденного диапазона.Итак, после исследования я наткнулся на этот код:

Function RangeToString(ByVal myRange As Range) As String
RangeToString = ""
If Not myRange Is Nothing Then
    Dim myCell As Range
    For Each myCell In myRange
        RangeToString = RangeToString & ";" & myCell.Value
    Next myCell
    'Remove extra comma
    RangeToString = Right(RangeToString, Len(RangeToString) - 1)
End If
End Function

Со следующими функциями и кодами я выполнил тестовый прогон, просто чтобы проверить, подхватил ли он какую-либо из выделенных ячеек.К сожалению, он не поместил никакого значения в тестовую ячейку, которую я кодировал.Вот пример кода, который я сделал:

 Dim totalsum As String
 totalsum = RangeToString(rng2)
 ThisWorkbook.Sheets("format").Range("N" & counter).Value = totalsum

Заранее спасибо!Извините за длинный вопрос.

1 Ответ

0 голосов
/ 10 декабря 2018

Если все, что вам нужно, это сумма rng2, вы можете просто использовать use Worksheetfunction.Sum() и использовать rng2 в качестве аргумента.

Debug.print WorksheetFunction.Sum(rng2)

Нет необходимости анализировать отдельное лицозначения каждой ячейки в диапазоне для использования на листе.

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