* Отредактировано: Добавить текущую ошибку, которую я получаю. Смотрите снизу этого сообщения для скриншота.Конкатенатные столбцы данных
У меня есть текст в столбце D. Макрос должен найти пустые ячейки, а затем конкатенировать текст из всех ячеек под ним.
Пример
Текст, начиная с D2, показывая, как это ...
Blank Cell
SampleText1
SampleText2
SampleText3
Blank Cell
SampleText4
SampleText5
SampleText6
Макрос должен отображать текст в D2 ...
SampleText1, SampleText2, SampleText3
и затем в D6, как это ...
SampleText4, SampleText5, SampleText6
.. и так далее.
Это должно работать только в столбце D, поэтому я предполагаю, что могу написать его в этом диапазоне.
Ближайший ответ я столкнулся здесь: Excel Macro to concatenate
Вот код, я работаю с ...
Sub ConcatColumns()
Do While ActiveCell <> "" 'Loops until the active cell is blank.
'The "&" must have a space on both sides or it will be
'treated as a variable type of long integer.
ActiveCell.Offset(0, 1).FormulaR1C1 = _
ActiveCell.Offset(0, -1) & " " & ActiveCell.Offset(0, 0)
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Edit: Теперь, используя большой код from @jeeped, но получение ошибки, см. ниже скриншот
Это выглядит здорово, спасибо так много! Вы даже ожидали, что мне нужно удалить строки после этого! Один вопрос в реализации - что мне нужно изменить? Я попытался изменить только ссылку на лист (т. Е. Изменив «С листами» («Лист4») на имя моего рабочего листа, но я получаю «Подзаголовок вне диапазона (Ошибка 9)». Очевидно, это означает, что я ссылаюсь на что-то, что не включено, но я недостаточно квалифицирован в VBA, чтобы изменить ваш замечательный код здесь :) Для моих нужд он будет работать на ячеек D2 - D39998. –
Кроме того, поскольку я работаю с этим больше, вы сказали, что у вас остались варианты для реверсирования и удаления - что мне нужно изменить, чтобы реализовать часть удаления? У меня есть другой код, который я сделал до этого, но если вы можете сделать это за один шаг, я бы предпочел это! Опять же, большое вам спасибо.Это именно то, что мне нужно, и вы ответили очень быстро! –
① Для изменения строки и столбца см. Свойство [Range.Cells] (https://msdn.microsoft.com/en-us/library/office/ff196273.aspx). ② См. Две логические переменные 'bReversedOrder' и' dDeleteSourceRows', чтобы включить или выключить эту опцию. – Jeeped