Включение формулы на основе функции в динамически определенной ячейке - PullRequest
0 голосов
/ 16 мая 2019

Мне нужно объединить динамический диапазон с помощью VBA.

Мое лучшее предположение до сих пор состояло в том, чтобы создать функцию и затем вызвать функцию через VBA для определенной ячейки. Вот код, который я использую:

Sub test()

Я использовал этот метод для объявления переменной просто для сокращения кода. По сути, последний столбец, который может содержать данные, всегда будет отличаться и никогда не будет прежним. У меня уже есть код, работающий для определения последнего столбца, который содержит данные, поэтому давайте просто скажем, что в этом случае последний столбец - это столбец G (или столбец 7)

Dim LASTCOLUMN As Integer: LASTCOLUMN = 7

Мне нужно получить объединенный диапазон в ячейке A1. Мое лучшее предположение - следующий код, но я также попробовал несколько других вариантов, и все они потерпели неудачу. Может кто-нибудь помочь мне с этой строкой кода? Он должен быть динамическим, чтобы включить динамическую переменную LASTCOLUMN.

Range("A1").Formula = "=ConcatRange(Cells(2, 1):Cells(LASTCOLUMN, 1)" End Sub

Это функция, которая объединяет данный диапазон

Function ConcatRange(myrange As Range) As String
    Dim CurrentRange As String
    Dim r As String
    CurrentRange = ""
        For Each cell In myrange
             If cell <> "" Then
               r = cell
               CurrentRange = CurrentRange & r
             End If
        Next cell
    ConcatRange = CurrentRange
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...