Несколько столбцов в один excel макросы

Многократное объединение отдельных групп ячеек в столбцах вручную – требует много времени и сил. Поэтому рационально будет воспользоваться макросом, который автоматически выполнит всю эту, плюс еще и дополнительную работу.

Как объединить 2 и несколько столбцов в таблице Excel

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

данные оп договорам.

Нам необходимо объединить ячейки в этих трех столбцах (D, E и F) таким образом, чтобы для каждой строки где нет договоров была одна объединенная ячейка.

Откроем редактор Visual Basic (ALT+F11):

Visual Basic.

И вставим новый стандартный модуль используя инструмент в редакторе: «Insert»-«Module». А после чего запишем в модуль VBA код макроса для объединения ячеек столбцов по горизонтали:

Sub ObedinitGorizontal()
Dim i As Long
Dim j As Long
Dim savetext As String
Application.DisplayAlerts = False
For i = 1 To Selection.Rows.Count
  savetext = Selection.Cells(i, 1)
  For j = 2 To Selection.Columns.Count
    savetext = savetext & Chr(32) & Selection.Cells(i, j)
  Next
  Selection.Rows(i).Merge
  Selection.Cells(i, 1) = savetext
  Selection.Cells(i, 1).HorizontalAlignment = xlHAlignCenter
Next
Application.DisplayAlerts = True
End Sub

Код VBA.

В первом цикле данного кода выполняется прогон по отдельных строках выделенного диапазона, а во втором объединяться значения столбцов в Excel. Тексты между собой разделяться символом пробела, его код в таблице символом ASCII имеет номер 32.

В конце выполнения первого цикла VBA кода мы изменяем свойство HorizontalAlignment для объединенной ячейки, что позволяет выровнять текст по центру с помощью макроса.

Если мы хотим объединить ячейки в строках содержащих информацию о выставленных счетах без подчиненных договоров, выделяем диапазон ячеек D5:F7 и запускаем наш макрос: «РАЗРАБОТЧИК»-«Код»-«Макросы». В появившемся диалоговом окне выбираем имя нашего макроса «ObedinitGorizontal» и нажимаем на кнопку «Выполнить». А далее снова выделяем диапазон ячеек D9:F11 и вновь запускаем макрос «ObedinitGorizontal». В результате ячейки будут объединены как показано ниже на рисунке:

В результате объединены ячейки.

Внимание! Если объединяемые ячейки будут содержать формулы, то они могут быть утеряны так как в процессе объединения формулы преобразуются в интерпретированный текст.



Модификация и настройка кода макроса

Если мы хотим разделять тексты не пробелом, а вертикальной линией, тогда нужно просто изменить ASCII код в аргументе функции Chr() на 124:

savetext = savetext & Chr(124) & Selection.Cells(i, j)

Если в объединенных ячейках мы хотим вставлять только тексты из первого столбца (D), без текстов, записанных в остальных двух столбцах E и F тогда удалите или закомментируйте переменную j и код второго цикла:

закомментируйте переменную j и код .

Как объединить ячейки по столбцам в Excel

Если мы хотим выполнить макрос одновременно и сразу для нескольких выделенных диапазонов ячеек (с помощью удержания клавиши CTRL на клавиатуре), добавим еще одну переменную:

Dim k As Long

Перед первым циклом добавим строку для начала нового цикла прохода по всех выделенных диапазонах:

For k = 1 To Selection.Areas.Count

В конце первого цикла не забудьте добавить конце для нового цикла:

Next

Кроме этого для всех элементов объекта Selection следует добавить ссылку на диапазон: Selection.Areas(k). Полная версия VBA кода модифицированного макроса выглядит следующим образом:

Sub ObedinitGorizontal()
Dim i As Long
Dim j As Long
Dim k As Long
Dim savetext As String
Application.DisplayAlerts = False
For k = 1 To Selection.Areas.Count
  For i = 1 To Selection.Areas(k).Rows.Count
    savetext = Selection.Areas(k).Cells(i, 1)
    For j = 2 To Selection.Areas(k).Columns.Count
      savetext = savetext & Chr(32) & Selection.Areas(k).Cells(i, j)
    Next
    Selection.Areas(k).Rows(i).Merge
    Selection.Areas(k).Cells(i, 1) = savetext
    Selection.Areas(k).Cells(i, 1).HorizontalAlignment = xlHAlignCenter
  Next
Next
Application.DisplayAlerts = True
End Sub

Читайте также: Как разъединить объединенные ячейки в Excel используя макрос.

Если хотите узнать как объединить строки в Excel, читайте статью: макрос для объединения строк в таблице.

Если бы мы не изменили код, то даже при многократном выделении диапазонов с нажатой клавишей CTRL все строки объединились бы в одну ячейку, что не есть хорошо.

 

Andronomus

Пользователь

Сообщений: 15
Регистрация: 08.01.2017

Подскажите,
как объединить значения нескольких столбцов в один столбец (первый) с помощью макроса. Все находится на одном листе.
Файл прикрепил.
Спасибо)

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

Ну вот опять. Что значит «объединить»? И почему с «помощью макроса»? Может достаточно СЦЕПИТЬ() или & ? Покажите в файле желаемый результат

Согласие есть продукт при полном непротивлении сторон.

 

Andronomus

Пользователь

Сообщений: 15
Регистрация: 08.01.2017

Вот так должно получиться. Файл прикрепил.
Т.е. данные второго столбца помещаются в конец 1го столбца, данные 3го в конец первого, и т.д. Все выстраиваются в один столбик.
Макрос создает столбцы. Как их формулой скрепить в этом процессе?

 

_Igor_61

Пользователь

Сообщений: 3007
Регистрация: 18.07.2016

Здравствуйте! Если формулами, то примерно так (два синих столбца сцеплены в зеленом) — тема

здесь

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#5

08.01.2017 23:14:44

Макросом

Код
Sub Perenos()
Dim j As Integer
Dim iLR_A As Long
Dim iLastRow
  For j = 2 To 5
    iLR_A = Cells(Rows.Count, "A").End(xlUp).Row + 1
    iLastRow = Cells(Rows.Count, j).End(xlUp).Row
    Range(Cells(1, j), Cells(iLastRow, j)).Cut Cells(iLR_A, 1)
  Next
  iLR_A = Cells(Rows.Count, "A").End(xlUp).Row
  For j = iLR_A To 1 Step -1
    If IsEmpty(Cells(j, 1)) Then Rows(j).Delete
  Next
End Sub
 

Andronomus

Пользователь

Сообщений: 15
Регистрация: 08.01.2017

Спасибо. Глюк какой то.
Кнопка макроса мерцает.
Жмешь Esc, вылетает ошибка: Метод Delete из класса Range завершен неверно.
И подсвечивается строка If IsEmpty(Cells(j, 1)) Then Rows(j).Delete                       Подсвечивается (Rows(j).Delete)
Что исправлять?

 

Мотя

Пользователь

Сообщений: 3218
Регистрация: 25.12.2012

См. вариант.

Изменено: Мотя09.01.2017 13:14:52

 

SAS888

Пользователь

Сообщений: 757
Регистрация: 01.01.1970

#8

09.01.2017 06:11:24

Можно существенно проще:

Код
Sub Collect()
    Dim i As Long, j As Long, a(), b()
    Application.ScreenUpdating = False
    a = ActiveSheet.UsedRange.Value: Cells.Clear
    For i = 1 To UBound(a, 2)
        j = Cells(Rows.Count, 1).End(xlUp).Row + 1
        b = Application.Index(a, 0, i)
        Cells(j, 1).Resize(UBound(b)).Value = b
    Next
    Columns(1).SpecialCells(4).Delete xlUp
End Sub

Пример во вложении.

Прикрепленные файлы

  • Пример.xlsb (15.44 КБ)

Изменено: SAS88809.01.2017 06:35:30

Чем шире угол зрения, тем он тупее.

0 / 0 / 0

Регистрация: 10.06.2016

Сообщений: 9

1

Соединить несколько столбцов в один!

10.06.2016, 09:02. Показов 8888. Ответов 22


Студворк — интернет-сервис помощи студентам

Есть задачка, ответа на нее нормального и рабочего не могу найти 3-ий день уже! Одни макросы с ошибками другие не так как надо делают и т.д.
В прикрепленном файле необходимо все данные из столбцов соединить в один столбец друг за другом!
Если Вам несложно, те которые разбираются в этом, уважаемые объяснить «нубу» как это сделать! Если вы решите эту задачку то пожалуйста объясните этот способ!



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

10.06.2016, 09:05

2

Есть такие функции как СЦЕПИТЬ и СЖПРОБЕЛЫ — используйте. Ну можно конечно и макрос написать, но зачем?



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

10.06.2016, 09:20

3



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

10.06.2016, 09:31

4

Ну наконец-то сподобились



0



0 / 0 / 0

Регистрация: 10.06.2016

Сообщений: 9

10.06.2016, 09:36

 [ТС]

5

Да какие нафиг сцепить! Они мне не нужны сцепленные! Просто вниз их перенести под первый столбец, все остальные столбцы!

Добавлено через 56 секунд
Опять же мне не надо сцеплять их!



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

10.06.2016, 09:43

6

Ну так почему! В примере! Нет примера!



0



0 / 0 / 0

Регистрация: 10.06.2016

Сообщений: 9

10.06.2016, 09:50

 [ТС]

7

Цитата
Сообщение от Abilok
Посмотреть сообщение

В прикрепленном файле необходимо все данные из столбцов соединить в один столбец друг за другом!

Цитата
Сообщение от Hugo121
Посмотреть сообщение

Ну так почему! В примере! Нет примера!



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

10.06.2016, 09:52

8

Можно ведь было в том файле дать 10 строк исходных данных и рядом/ниже/какугодно показать в понятном виде какой результат нужен — всем бы сэкономили кучу букв ответов…



0



0 / 0 / 0

Регистрация: 10.06.2016

Сообщений: 9

10.06.2016, 10:14

 [ТС]

9

Цитата
Сообщение от Hugo121
Посмотреть сообщение

Можно ведь было в том файле дать 10 строк исходных данных и рядом/ниже/какугодно показать в понятном виде какой результат нужен — всем бы сэкономили кучу букв ответов…

Не я правда туда попал?!

Цитата
Сообщение от Abilok
Посмотреть сообщение

все данные из столбцов соединить в один столбец друг за другом!



0



pashulka

4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

10.06.2016, 10:24

10

Лучший ответ Сообщение было отмечено Abilok как решение

Решение

Abilok, Тестируйте … на кошках (c)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Test()
    Dim iSource As Range, iCount&, iArr, tmp
 
    Set iSource = ActiveSheet.UsedRange
    ReDim iArr(1 To Application.CountA(iSource))
 
    For Each tmp In iSource.Value
        If Not IsEmpty(tmp) Then
           iCount = iCount + 1
           iArr(iCount) = tmp
        End If
    Next
 
    iSource.Clear
    iSource(1).Resize(iCount) = Application.Transpose(iArr)
End Sub



2



Hugo121

6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

10.06.2016, 10:30

11

Цитата
Сообщение от Abilok
Посмотреть сообщение

Не я правда туда попал?!

— это смотря куда собирались попасть
Пример непонятный — вот откуда взялось
гибдд
билеты
билеты
билеты
сайт
официальный

Но может так подойдёт?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub tt()
Dim a, i&, ii&, x&
a = Sheets(1).[b1].CurrentRegion.Value
For ii = 1 To UBound(a, 2)
For i = 1 To UBound(a, 1)
If Len(Trim(a(i, ii))) Then
x = x + 1
Sheets(2).Cells(x, 1) = a(i, ii)
End If
Next
Next
End Sub



0



0 / 0 / 0

Регистрация: 10.06.2016

Сообщений: 9

10.06.2016, 10:36

 [ТС]

12

Цитата
Сообщение от Hugo121
Посмотреть сообщение

— это смотря куда собирались попасть
Пример непонятный — вот откуда взялось
гибдд
билеты
билеты
билеты
сайт
официальный

Это правда важно?

Добавлено через 22 секунды

Цитата
Сообщение от pashulka
Посмотреть сообщение

Abilok, Тестируйте … на кошках (c)

Что еще за кошки?)



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

10.06.2016, 10:36

13

Цитата
Сообщение от Abilok
Посмотреть сообщение

Это правда важно?

Вам виднее — иногда бывает даже очень важно.



0



876 / 555 / 291

Регистрация: 21.11.2012

Сообщений: 1,551

10.06.2016, 10:40

14

Abilok,

вы, видимо, сами не туда попали. в представленном вами примере нет какой-то зависимости. исходя из вашего описания к поставленной задаче следует, что вы хотите из столбцов
A B C
A B C

получить:
A
A
B
B
C
C

но в вашем примере «объединение» вообще не понятно по какому принципу сливаются столбцы. сначала берется первый. далее хз

просто даже тупой тест, выделить все заполненные ячейки на исходном листе — показывает 574 заполненных, на втором — 282.

Вы либо научитесь правильно формулировать вопросы, либо разбирайтесь в своем мусоре сами



0



0 / 0 / 0

Регистрация: 10.06.2016

Сообщений: 9

10.06.2016, 10:53

 [ТС]

15

Цитата
Сообщение от Hugo121
Посмотреть сообщение

Sub tt()
Dim a, i&, ii&, x&
a = Sheets(1).[b1].CurrentRegion.Value
For ii = 1 To UBound(a, 2)
For i = 1 To UBound(a, 1)
If Len(Trim(a(i, ii))) Then
x = x + 1
Sheets(2).Cells(x, 1) = a(i, ii)
End If
Next
Next
End Sub

Этот с ошибкой какой то…

Добавлено через 6 минут

Цитата
Сообщение от hamin
Посмотреть сообщение

вы, видимо, сами не туда попали. в представленном вами примере нет какой-то зависимости. исходя из вашего описания к поставленной задаче следует, что вы хотите из столбцов
A B C
A B C
получить:
A
A
B
B
C
C
но в вашем примере «объединение» вообще не понятно по какому принципу сливаются столбцы. сначала берется первый. далее хз
просто даже тупой тест, выделить все заполненные ячейки на исходном листе — показывает 574 заполненных, на втором — 282.
Вы либо научитесь правильно формулировать вопросы, либо разбирайтесь в своем мусоре сами

Вам либо заняться нечем, либо вы просто строите сидя здесь из себя что то понимающее!
Сделать все вручную видимо легче будет, если я буду в примерах показывать полностью сделанную конечную работу, задачу, смысл мне лезть на форумы???!
Что сложного понять чтобы сделать каждый столбец в один столбец друг под другом???

Цитата
Сообщение от hamin
Посмотреть сообщение

A B C
A B C
получить:
A
A
B
B
C
C

Что сложного для Вас, если вы понимающие в этом люди?
Какой от Вас толк если вы сидите и не можете поделиться ни с кем своими знаниями, а только можете раскритиковать и назвать мусором?!

Добавлено через 5 минут

Цитата
Сообщение от pashulka
Посмотреть сообщение

Abilok, Тестируйте … на кошках (c)
Visual BasicВыделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Test()
* * Dim iSource As Range, iCount&, iArr, tmp
Set iSource = ActiveSheet.UsedRange
* * ReDim iArr(1 To Application.CountA(iSource))
For Each tmp In iSource.Value
* * * * If Not IsEmpty(tmp) Then
* * * * * *iCount = iCount + 1
* * * * * *iArr(iCount) = tmp
* * * * End If
* * Next
iSource.Clear
* * iSource(1).Resize(iCount) = Application.Transpose(iArr)
End Sub

Уважаемый, pashulka! А как Вам удалось понять мой вопрос?



0



876 / 555 / 291

Регистрация: 21.11.2012

Сообщений: 1,551

10.06.2016, 10:53

16

Abilok,

Что сложного для Вас, если вы понимающие в этом люди?
Какой от Вас толк если вы сидите и не можете поделиться ни с кем своими знаниями, а только можете раскритиковать и назвать мусором?!

а вы объясните людям что вам надо, а в вашем примере, который вы написали, все выглядит так:
хочу из столбца
A B C
A B C

получить

A
C
B
H



0



0 / 0 / 0

Регистрация: 10.06.2016

Сообщений: 9

10.06.2016, 10:56

 [ТС]

17

Цитата
Сообщение от hamin
Посмотреть сообщение

Abilok,
Что сложного для Вас, если вы понимающие в этом люди?
Какой от Вас толк если вы сидите и не можете поделиться ни с кем своими знаниями, а только можете раскритиковать и назвать мусором?!
а вы объясните людям что вам надо, а в вашем примере, который вы написали, все выглядит так:
хочу из столбца
A B C
A B C
получить
A
C
B
H

Прощайте, hamin!



0



414 / 262 / 82

Регистрация: 27.10.2012

Сообщений: 860

10.06.2016, 11:44

18

Не по теме:

Abilok, кое-где (не скажу где) уже бан бы схлопотали, а тут люди ещё и отвечают

.



0



0 / 0 / 0

Регистрация: 10.06.2016

Сообщений: 9

10.06.2016, 11:49

 [ТС]

19

kalbasiatka, Что я написал не так как надо кому то?



0



414 / 262 / 82

Регистрация: 27.10.2012

Сообщений: 860

10.06.2016, 11:59

20

Элементарная вежливость должна быть. Ни кто вам ни чего не обязан.
Уже после этого нормальный человек прошёл бы мимо темы.



0



I have multiple lists that are in separate columns in excel. What I need to do is combine these columns of data into one big column. I do not care if there are duplicate entries, however I want it to skip row 1 of each column.

Also what about if ROW1 has headers from January to December, and the length of the columns are different and needs to be combine into one big column?

ROW1| 1   2   3    
ROW2| A   D   G    
ROW3| B   E   H    
ROW4| C   F   I

should combine into

A    
B    
C    
D    
E    
F    
G    
H    
I

The first row of each column needs to be skipped.

Community's user avatar

asked Jun 4, 2010 at 20:40

Akib's user avatar

Try this. Click anywhere in your range of data and then use this macro:

Sub CombineColumns()
Dim rng As Range
Dim iCol As Integer
Dim lastCell As Integer

Set rng = ActiveCell.CurrentRegion
lastCell = rng.Columns(1).Rows.Count + 1

For iCol = 2 To rng.Columns.Count
    Range(Cells(1, iCol), Cells(rng.Columns(iCol).Rows.Count, iCol)).Cut
    ActiveSheet.Paste Destination:=Cells(lastCell, 1)
    lastCell = lastCell + rng.Columns(iCol).Rows.Count
Next iCol
End Sub

answered Jun 5, 2010 at 13:15

Alex P's user avatar

Alex PAlex P

12.2k5 gold badges51 silver badges69 bronze badges

3

You can combine the columns without using macros. Type the following function in the formula bar:

=IF(ROW()<=COUNTA(A:A),INDEX(A:A,ROW()),IF(ROW()<=COUNTA(A:B),INDEX(B:B,ROW()-COUNTA(A:A)),IF(ROW()>COUNTA(A:C),"",INDEX(C:C,ROW()-COUNTA(A:B)))))

The statement uses 3 IF functions, because it needs to combine 3 columns:

  • For column A, the function compares the row number of a cell with the total number of cells in A column that are not empty. If the result is true, the function returns the value of the cell from column A that is at row(). If the result is false, the function moves on to the next IF statement.
  • For column B, the function compares the row number of a cell with the total number of cells in A:B range that are not empty. If the result is true, the function returns the value of the first cell that is not empty in column B. If false, the function moves on to the next IF statement.
  • For column C, the function compares the row number of a cell with the total number of cells in A:C range that are not empty. If the result is true, the function returns a blank cell and doesn’t do any more calculation. If false, the function returns the value of the first cell that is not empty in column C.

TylerH's user avatar

TylerH

20.6k64 gold badges76 silver badges97 bronze badges

answered Dec 3, 2014 at 8:25

CristinaP's user avatar

CristinaPCristinaP

3063 silver badges6 bronze badges

0

Not sure if this completely helps, but I had an issue where I needed a «smart» merge. I had two columns, A & B. I wanted to move B over only if A was blank. See below. It is based on a selection Range, which you could use to offset the first row, perhaps.

Private Sub MergeProjectNameColumns()
    Dim rngRowCount As Integer
    Dim i As Integer

    'Loop through column C and simply copy the text over to B if it is not blank
    rngRowCount = Range(dataRange).Rows.Count
    ActiveCell.Offset(0, 0).Select
    ActiveCell.Offset(0, 2).Select
    For i = 1 To rngRowCount
        If (Len(RTrim(ActiveCell.Value)) > 0) Then
            Dim currentValue As String
            currentValue = ActiveCell.Value
            ActiveCell.Offset(0, -1) = currentValue
        End If
        ActiveCell.Offset(1, 0).Select
    Next i

    'Now delete the unused column
    Columns("C").Select

    selection.Delete Shift:=xlToLeft
End Sub

answered Jun 4, 2010 at 20:49

Steven Dorfmeister's user avatar

Function Concat(myRange As Range, Optional myDelimiter As String) As String 
  Dim r As Range 
  Application.Volatile 
  For Each r In myRange 
    If Len(r.Text) Then 
      Concat = Concat & IIf(Concat <> "", myDelimiter, "") & r.Text 
    End If 
  Next 
End Function

answered Jun 4, 2010 at 21:01

Mark Baker's user avatar

Mark BakerMark Baker

208k31 gold badges340 silver badges383 bronze badges

макрос объединения столбцов в один построчно

Ilsur

Дата: Среда, 23.11.2016, 23:34 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Доброго времени суток! Суть проблемы такая:
Имеется файл с таблицей с указанием в столбцах наименования товара, производитель, единица измерения. Нужно объединить эти 3 столбца в один построчно. Я так думаю макросом. Примерный код я нашел, но он при выделении нескольких строк обьеденяет все ячейки в одну. Вот он:
[vba]

Код

Sub MergeCell()
Const sDELIM As String = » «
Dim rCell As Range
Dim sMergeStr As String
If TypeName(Selection) <> «Range» Then Exit Sub
With Selection
For Each rCell In .Cells
sMergeStr = sMergeStr & sDELIM & rCell.Text
Next rCell
Application.DisplayAlerts = False
.Merge Across:=False
Application.DisplayAlerts = True
.Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM))
End With

End Sub

[/vba]

Может тут что-то нужно изменить, чтобы при выделении всех значений 3 столбцов — обьединение произошло построчно. Прикрепляю файл с этими тремя столбцами. Заранее Спасибо!

К сообщению приложен файл:

6207947.xls
(58.0 Kb)


с благодарностью Ilsur

Сообщение отредактировал IlsurСреда, 23.11.2016, 23:36

 

Ответить

_Boroda_

Дата: Четверг, 24.11.2016, 00:00 |
Сообщение № 2

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

А формулой в соседнем столбце не пойдет? Потом оттуда можно скопировать и вставить значениями в нужно место

Код

=D7&J$6&» «&E7&J$6&» «&F7

В J$6 — разделитель у меня в файле точка с запятой


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Ilsur

Дата: Четверг, 24.11.2016, 00:11 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Конечно можно, я как вариант рассматривал его, но желательно с использованием макроса


с благодарностью Ilsur

 

Ответить

Timber_Wolf

Дата: Четверг, 24.11.2016, 09:48 |
Сообщение № 4

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 107


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

Ilsur,

Вопрос 1
А результирующая ячейка то какая? =)) Вы выделяете 2-4 ячейки используете макрос и куда вы результат хотите получить? Во все 2-4 выделенных ячейки? =)

Вопрос 2
Вы хотите делать такую процедуру в ручную? Взять, выделить, макрос, готово, следующая строка… А обработка всего листа сразу не страивает? )

Сообщение отредактировал Timber_WolfЧетверг, 24.11.2016, 09:49

 

Ответить

Wasilich

Дата: Четверг, 24.11.2016, 12:32 |
Сообщение № 5

Группа: Друзья

Ранг: Старожил

Сообщений: 1232


Репутация:

326

±

Замечаний:
0% ±


2003

Сама тема начинается со слова «макрос» но, почему то здесь!
Так пойдет?
[vba]

Код

Sub Макрос1()
  Dim I&, TX$
  Application.ScreenUpdating = False:  Application.DisplayAlerts = False
  For I = 7 To Range(«D» & Rows.Count).End(xlUp).Row
    TX = Cells(I, 4) & »  » & Cells(I, 5) & »  » & Cells(I, 6)
    Range(«D» & I & «:F» & I).Merge Across:=True
    Cells(I, 4) = TX
  Next
  Application.ScreenUpdating = True: Application.DisplayAlerts = True
End Sub

[/vba]

Сообщение отредактировал WasilichЧетверг, 24.11.2016, 12:36

 

Ответить

Ilsur

Дата: Четверг, 24.11.2016, 16:07 |
Сообщение № 6

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

да я и хочу весь лист с использованием макроса


с благодарностью Ilsur

 

Ответить

Ilsur

Дата: Четверг, 24.11.2016, 16:08 |
Сообщение № 7

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Wasilich большое спасибо за помощь, то что надо!))


с благодарностью Ilsur

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Несколько столбцов в один excel макрос
  • Несколько столбцов в excel как добавить еще
  • Несколько сносок на один источник word
  • Несколько смещений в excel
  • Несколько связанных выпадающих списков в excel