Здравствуйте. Есть макрос который объединяет Все одинаковые значения в таблице ексель: Сам макрос:
Sub JoinDoubles() Dim i AsLong Dim j AsLong
Application.DisplayAlerts = False For j = 1To Selection.Columns.Count For i = Selection.Rows.Count To2Step -1 If Selection.Cells(i - 1, j) = Selection.Cells(i, j) Then
Range(Selection.Cells(i - 1, j), Selection.Cells(i, j)).Merge EndIf Next Next
Selection.VerticalAlignment = xlVAlignCenter
Application.DisplayAlerts = True EndSub
Макрос классный, но есть нюанс, как сделать чтоб объединение происходило только по определённым столбцам? И чтоб не нужно было выделять таблицу ( без выделений макрос не работает.
Так же, есть макрос который вставляет пустые строки:
Sub VstavkaStrok1() Dim i AsLong Dim pustroka AsLong For i = Selection.Rows.Count To2Step -1 If Selection(i, 1).MergeArea.Rows.Count <> 1Then
pustroka = Selection(i, 1).Row + 1
ActiveSheet.Rows(pustroka).Insert xlShiftDown
ActiveSheet.Rows(pustroka).RowHeight = 7
ActiveSheet.Rows(pustroka).Borders(xlInsideVertical). _
LineStyle = xlLineStyleNone
ActiveSheet.Rows(pustroka).Borders(xlEdgeLeft). _
LineStyle = xlLineStyleNone
ActiveSheet.Rows(pustroka).Borders(xlEdgeRight). _
LineStyle = xlLineStyleNone
ActiveSheet.Rows(pustroka).Interior. _
ColorIndex = xlColorIndexNone
i = i - Selection(i, 1).MergeArea.Rows.Count + 1 EndIf Next EndSub
Помогите объединить эти два макроса в один, чтоб получилось так: Мы на активной странице запускаем макрос (без выделения таблицы), он объединяет все одинаковые значения по столбцу B и после объедения, вставлялась строчка (после каждого объединившегося блока) И еще, эти макросы работаю в обычной таблице. А как сделать чтоб пахали в умной таблице? Спасибо кто поможет.
Здравствуйте. Есть макрос который объединяет Все одинаковые значения в таблице ексель: Сам макрос:
Sub JoinDoubles() Dim i AsLong Dim j AsLong
Application.DisplayAlerts = False For j = 1To Selection.Columns.Count For i = Selection.Rows.Count To2Step -1 If Selection.Cells(i - 1, j) = Selection.Cells(i, j) Then
Range(Selection.Cells(i - 1, j), Selection.Cells(i, j)).Merge EndIf Next Next
Selection.VerticalAlignment = xlVAlignCenter
Application.DisplayAlerts = True EndSub
Макрос классный, но есть нюанс, как сделать чтоб объединение происходило только по определённым столбцам? И чтоб не нужно было выделять таблицу ( без выделений макрос не работает.
Так же, есть макрос который вставляет пустые строки:
Sub VstavkaStrok1() Dim i AsLong Dim pustroka AsLong For i = Selection.Rows.Count To2Step -1 If Selection(i, 1).MergeArea.Rows.Count <> 1Then
pustroka = Selection(i, 1).Row + 1
ActiveSheet.Rows(pustroka).Insert xlShiftDown
ActiveSheet.Rows(pustroka).RowHeight = 7
ActiveSheet.Rows(pustroka).Borders(xlInsideVertical). _
LineStyle = xlLineStyleNone
ActiveSheet.Rows(pustroka).Borders(xlEdgeLeft). _
LineStyle = xlLineStyleNone
ActiveSheet.Rows(pustroka).Borders(xlEdgeRight). _
LineStyle = xlLineStyleNone
ActiveSheet.Rows(pustroka).Interior. _
ColorIndex = xlColorIndexNone
i = i - Selection(i, 1).MergeArea.Rows.Count + 1 EndIf Next EndSub
Помогите объединить эти два макроса в один, чтоб получилось так: Мы на активной странице запускаем макрос (без выделения таблицы), он объединяет все одинаковые значения по столбцу B и после объедения, вставлялась строчка (после каждого объединившегося блока) И еще, эти макросы работаю в обычной таблице. А как сделать чтоб пахали в умной таблице? Спасибо кто поможет. baskakova7441
как сделать чтоб объединение происходило только по определённым столбцам?
Самое простое - "проложить" циклы Select Case'м с указанием номеров столбцов срабатывания:
Sub JoinDoubles() Dim i AsLong Dim j AsLong
Application.DisplayAlerts = False For j = 1To Selection.Columns.Count SelectCase j 'вот это добавить - 1 Case3To7'ещё вот это - 2 For i = Selection.Rows.Count To2Step -1 If Selection.Cells(i - 1, j) = Selection.Cells(i, j) Then
Range(Selection.Cells(i - 1, j), Selection.Cells(i, j)).Merge EndIf Next EndSelect'и вот это - 3 Next
Selection.VerticalAlignment = xlVAlignCenter
Application.DisplayAlerts = True EndSub
как сделать чтоб объединение происходило только по определённым столбцам?
Самое простое - "проложить" циклы Select Case'м с указанием номеров столбцов срабатывания:
Sub JoinDoubles() Dim i AsLong Dim j AsLong
Application.DisplayAlerts = False For j = 1To Selection.Columns.Count SelectCase j 'вот это добавить - 1 Case3To7'ещё вот это - 2 For i = Selection.Rows.Count To2Step -1 If Selection.Cells(i - 1, j) = Selection.Cells(i, j) Then
Range(Selection.Cells(i - 1, j), Selection.Cells(i, j)).Merge EndIf Next EndSelect'и вот это - 3 Next
Selection.VerticalAlignment = xlVAlignCenter
Application.DisplayAlerts = True EndSub
RAN, Gustav, Pelena, ребята, подскажите как в моем случае сделать так: чтоб при добавление данных через форму, они добавлялись с рамками и от центрованы
RAN, Gustav, Pelena, ребята, подскажите как в моем случае сделать так: чтоб при добавление данных через форму, они добавлялись с рамками и от центрованыbaskakova7441