Мне нужно объединить динамический диапазон с помощью 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