#excel #concatenation
#excel #объединение
Вопрос:
У меня есть столбец для каждой из 4 переменных, давайте назовем их A, B, C, D. Каждая переменная имеет множество значений. Я хочу выбрать только одну ячейку в каждом столбце, а затем нажать кнопку, которая: 1) объединит их и 2) поместит результат в столбец E. Итак, я мог бы выбрать A2, B5, C3 и D1, нажать волшебную кнопку (возможно, волшебную кнопку нужно нажать до и после выбора ячеек), а в столбце E у меня была бы конкатенация значений в: A2, B5, C3, D1, помещенных в столбец E. Заранее спасибо.
Комментарии:
1. Какая ячейка в столбце E?
2. Ячейка будет E1.
Ответ №1:
Я бы определил пользовательскую функцию объединения в VBA, например
Function Conc(v As Variant, Optional ByVal sDelim As String = "") As String
Dim vLoop As Variant
If IsArray(v) Or TypeName(v) = "Range" Then
For Each vLoop In v
If Conc = "" Then
Conc = vLoop
Else
Conc = Conc amp; sDelim amp; vLoop
End If
Next vLoop
Else
Conc = CStr(v)
End If
End Function
и затем вы можете использовать его в a Sub
по своему вкусу, например
Sub ConcatenateCells()
Range("E1") = Conc(Selection)
End Sub
Я говорю по своему вкусу, поскольку вы не объяснили, где в столбце E должен быть результат, как указал ученик Гэри. Вы можете привязать это Sub
к кнопке или сочетанию клавиш, например CTRL SHIFT C.
Комментарии:
1. Понял. Я думаю… Позвольте мне попытаться заставить это работать. Я не слишком хорош в этом. Я отправлю лучший комментарий позже, но спасибо за такой быстрый ответ!
Ответ №2:
Не совсем то, что требует OP, но, возможно, представляет интерес для кого-то другого, требующего подхода, отличного от VBA (т.Е. близкого, если не точного):
=
, Ctrl выделите каждую из четырех ячеек по очереди, введите, а затем замените ,
на amp;
.