2015-03-10 2 views
0

Есть ли простой способ объединить значения двух диапазонов в один? У меня есть столбец «Первые имена» и еще один из последних имен, которые я хотел бы добавить вместе для целого ряда полных имен, которые будут использоваться в другой книге. Я использую Union для их объединения, но я также хотел бы добавить пробел между двумя именами.Легко объединить два диапазона и строку в Excel через vba

Set UnionRange = Union(Range1, " ", Range2) 

Есть ли способ использовать союз или нечто подобное, чтобы добавить пространство без Перебери каждую строку или записывать результаты на лист в первую очередь?

ответ

0

Для того чтобы объединить две или более струны, вы можете просто использовать & или + оператора. В вашем случае, если диапазон с фамилиями - это одна ячейка справа от первой с именами, а конкатенированная строка будет одной ячейкой дальше вправо, вы можете сделать что-то подобное в VBA:

Sub concatenate_names 
    Dim range_of_names As Range, c As Range, s As String 

    Set range_of_names = Worksheets("Whatever").Range("Whatever") 

    For Each c In range_of_names 
    s = CStr(c) & " " & CStr(c.Offset(0, 1)) 
    c.Offset(0, 2) = s 
    Next 
End Sub 

Конечно, вам не нужно строго хранить строку в переменной перед тем, как поместить ее в ячейку, но я обнаружил, что она упрощает чтение кода.

Вы также можете сделать это с помощью листа-функции CONCATENATE, положить что-то вроде этого в клетку, где объединенные имена должны быть:

=CONCATENATE(A1," ",B1) 
+1

незначительного комментарий, но от плохого опыта от унаследованного кода, избегать использования + для конкатенации строк, если есть какая-либо отдаленная возможность, строка может содержать число. & работает одинаково, поэтому придерживайтесь способа, который никогда не должен идти не так. –

+0

Хмм, я не знал об этом. Спасибо за совет. – eirikdaude

+0

Спасибо за совет. Я хочу сохранить результат в другой книге и хотел бы получить результат в диапазоне или массиве. Знаете ли вы, как это сделать, не зацикливая каждую клетку? – Jason

Смежные вопросы