Как объединить строку значений в одну строку текста? - PullRequest
0 голосов
/ 20 апреля 2019

Я новичок в VBA в Excel, но я пытаюсь объединить все значения в строке данных в одну текстовую строку, и мне трудно разобраться в этом. Я пробовал циклы For-Next и циклы Do To, чтобы захватить каждое значение ячейки до нижней части строки, а затем объединить его (с пробелами между ними) в одну ячейку, из которой я могу скопировать и вставить данные. Заранее спасибо за помощь!

Sub String_Acct_Numbers()

Dim AccountNumber As String
Dim StartRow As Integer
Dim NumRows As Integer

NumRows = Range("A1", Range("A2").End(xlDown)).Rows.Count

For StartRow = 2 To NumRows

AccountNumber = Cells(StartRow, 1).Value & " " & Cells(StartRow + 1, 
1).Value

Next StartRow

Range("C1") = AccountNumber


End Sub

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Предыдущий ответ на 100% правильный, используйте TEXTJOIN, если он у вас есть. Если у вас его нет в наличии, вы можете использовать это ...

Public Function ConcatenateCells(ByVal rngCells As Range, Optional ByVal strDelimiter As String = " ") As String
    Dim objCell As Range

    For Each objCell In rngCells
        If ConcatenateCells <> "" Then ConcatenateCells = ConcatenateCells & strDelimiter
        ConcatenateCells = ConcatenateCells & objCell.Text
    Next
End Function

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

0 голосов
/ 20 апреля 2019

Если у вас Office 365 или Excel 2019, это можно сделать без VBA, используя функцию TextJoin .

Если у вас нет ни одной из этих версий Excel, используйте одну из них.из множества кодов VBA, которые были опубликованы в сети за последние 20 лет для объединения диапазонов.

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