Dalm
Дата: Суббота, 04.07.2026, 22:33 |
Сообщение № 21
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 206
Репутация:
4
±
Замечаний:
0% ±
Excel 2019
.
Сообщение отредактировал Dalm - Суббота, 04.07.2026, 22:35
Ответить
Сообщение . Автор - Dalm Дата добавления - 04.07.2026 в 22:33
Dalm
Дата: Суббота, 04.07.2026, 22:34 |
Сообщение № 22
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 206
Репутация:
4
±
Замечаний:
0% ±
Excel 2019
Что же делать ? Помогите
Что же делать ? Помогите Dalm
Ответить
Сообщение Что же делать ? Помогите Автор - Dalm Дата добавления - 04.07.2026 в 22:34
MikeVol
Дата: Воскресенье, 05.07.2026, 10:24 |
Сообщение № 23
Группа: Проверенные
Ранг: Обитатель
Сообщений: 489
Репутация:
120
±
Замечаний:
0% ±
MSO LTSC 2021 EN
Dalm , То есть таблица "Группа-2" не идет по порядку, а просто куда-то исчезает.
Всё правильно код отработал, ведь вы Я удалил одну из желтых ячеек с надписью "Группа".
Вы вообще пробывали читать код, понять его логику? Что просили - то и получили как результат. Я что-то сам запутался в ваших хотелках .
Dalm , То есть таблица "Группа-2" не идет по порядку, а просто куда-то исчезает.
Всё правильно код отработал, ведь вы Я удалил одну из желтых ячеек с надписью "Группа".
Вы вообще пробывали читать код, понять его логику? Что просили - то и получили как результат. Я что-то сам запутался в ваших хотелках .MikeVol
Ученик. Одесса - Украина
Ответить
Сообщение Dalm , То есть таблица "Группа-2" не идет по порядку, а просто куда-то исчезает.
Всё правильно код отработал, ведь вы Я удалил одну из желтых ячеек с надписью "Группа".
Вы вообще пробывали читать код, понять его логику? Что просили - то и получили как результат. Я что-то сам запутался в ваших хотелках .Автор - MikeVol Дата добавления - 05.07.2026 в 10:24
MikeVol
Дата: Воскресенье, 05.07.2026, 10:46 |
Сообщение № 24
Группа: Проверенные
Ранг: Обитатель
Сообщений: 489
Репутация:
120
±
Замечаний:
0% ±
MSO LTSC 2021 EN
Не знаю, может и угадаю вашу логику хотелки, возьму за основу код от Елены и чуть его изменю: [vba]Код
Option Explicit Const stdata As String = "Y17" Public Sub SplitTable_v2() On Error GoTo ErrorHandler Dim i As Long, ir As Long, cc As Long Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.CutCopyMode = False With ActiveSheet Dim st As Range Set st = .Range(stdata) Dim nCol As Long nCol = st.CurrentRegion.Columns.Count Dim Offs As Long Offs = nCol + 2 Dim rTitle As Range Set rTitle = st.Resize(1, nCol) Dim arrData arrData = st.CurrentRegion.Value Dim c0 As Long c0 = st.Column Dim r0 As Long r0 = st.Row Dim lCol As Long lCol = .Cells(r0 - 1, .Columns.Count).End(xlToLeft).Column For cc = st.Column + Offs To lCol Step Offs .Range(.Cells(r0, cc), _ .Cells(r0 + UBound(arrData), cc + nCol - 1)).Clear Next cc c0 = st.Column For i = 2 To UBound(arrData) If arrData(i, 2) Like "Группа *" Then Do c0 = c0 + Offs If c0 > lCol Then Exit For Loop Until .Cells(r0 - 1, c0).Value = "Группа" If c0 > lCol Then Exit For ir = i ElseIf i < UBound(arrData) Then Do While i < UBound(arrData) And _ Not arrData(i, 2) Like "Группа *" i = i + 1 Loop rTitle.Copy .Cells(r0, c0) .Cells(r0 + ir - 1, st.Column).Resize(i - ir, nCol).Copy .Cells(r0 + 1, c0).PasteSpecial xlPasteValuesAndNumberFormats .Cells(r0 + ir - 1, st.Column).Resize(i - ir, nCol).Copy .Cells(r0 + 1, c0).PasteSpecial xlPasteFormats i = i - 1 End If Next i End With ExitHandler: Application.CutCopyMode = False Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Exit Sub ErrorHandler: MsgBox Err.Description, vbCritical Resume ExitHandler End Sub
[/vba]Вдруг угадал. Удачи.
Не знаю, может и угадаю вашу логику хотелки, возьму за основу код от Елены и чуть его изменю: [vba]Код
Option Explicit Const stdata As String = "Y17" Public Sub SplitTable_v2() On Error GoTo ErrorHandler Dim i As Long, ir As Long, cc As Long Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.CutCopyMode = False With ActiveSheet Dim st As Range Set st = .Range(stdata) Dim nCol As Long nCol = st.CurrentRegion.Columns.Count Dim Offs As Long Offs = nCol + 2 Dim rTitle As Range Set rTitle = st.Resize(1, nCol) Dim arrData arrData = st.CurrentRegion.Value Dim c0 As Long c0 = st.Column Dim r0 As Long r0 = st.Row Dim lCol As Long lCol = .Cells(r0 - 1, .Columns.Count).End(xlToLeft).Column For cc = st.Column + Offs To lCol Step Offs .Range(.Cells(r0, cc), _ .Cells(r0 + UBound(arrData), cc + nCol - 1)).Clear Next cc c0 = st.Column For i = 2 To UBound(arrData) If arrData(i, 2) Like "Группа *" Then Do c0 = c0 + Offs If c0 > lCol Then Exit For Loop Until .Cells(r0 - 1, c0).Value = "Группа" If c0 > lCol Then Exit For ir = i ElseIf i < UBound(arrData) Then Do While i < UBound(arrData) And _ Not arrData(i, 2) Like "Группа *" i = i + 1 Loop rTitle.Copy .Cells(r0, c0) .Cells(r0 + ir - 1, st.Column).Resize(i - ir, nCol).Copy .Cells(r0 + 1, c0).PasteSpecial xlPasteValuesAndNumberFormats .Cells(r0 + ir - 1, st.Column).Resize(i - ir, nCol).Copy .Cells(r0 + 1, c0).PasteSpecial xlPasteFormats i = i - 1 End If Next i End With ExitHandler: Application.CutCopyMode = False Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Exit Sub ErrorHandler: MsgBox Err.Description, vbCritical Resume ExitHandler End Sub
[/vba]Вдруг угадал. Удачи. MikeVol
Ученик. Одесса - Украина
Ответить
Сообщение Не знаю, может и угадаю вашу логику хотелки, возьму за основу код от Елены и чуть его изменю: [vba]Код
Option Explicit Const stdata As String = "Y17" Public Sub SplitTable_v2() On Error GoTo ErrorHandler Dim i As Long, ir As Long, cc As Long Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.CutCopyMode = False With ActiveSheet Dim st As Range Set st = .Range(stdata) Dim nCol As Long nCol = st.CurrentRegion.Columns.Count Dim Offs As Long Offs = nCol + 2 Dim rTitle As Range Set rTitle = st.Resize(1, nCol) Dim arrData arrData = st.CurrentRegion.Value Dim c0 As Long c0 = st.Column Dim r0 As Long r0 = st.Row Dim lCol As Long lCol = .Cells(r0 - 1, .Columns.Count).End(xlToLeft).Column For cc = st.Column + Offs To lCol Step Offs .Range(.Cells(r0, cc), _ .Cells(r0 + UBound(arrData), cc + nCol - 1)).Clear Next cc c0 = st.Column For i = 2 To UBound(arrData) If arrData(i, 2) Like "Группа *" Then Do c0 = c0 + Offs If c0 > lCol Then Exit For Loop Until .Cells(r0 - 1, c0).Value = "Группа" If c0 > lCol Then Exit For ir = i ElseIf i < UBound(arrData) Then Do While i < UBound(arrData) And _ Not arrData(i, 2) Like "Группа *" i = i + 1 Loop rTitle.Copy .Cells(r0, c0) .Cells(r0 + ir - 1, st.Column).Resize(i - ir, nCol).Copy .Cells(r0 + 1, c0).PasteSpecial xlPasteValuesAndNumberFormats .Cells(r0 + ir - 1, st.Column).Resize(i - ir, nCol).Copy .Cells(r0 + 1, c0).PasteSpecial xlPasteFormats i = i - 1 End If Next i End With ExitHandler: Application.CutCopyMode = False Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Exit Sub ErrorHandler: MsgBox Err.Description, vbCritical Resume ExitHandler End Sub
[/vba]Вдруг угадал. Удачи. Автор - MikeVol Дата добавления - 05.07.2026 в 10:46
Dalm
Дата: Воскресенье, 05.07.2026, 16:22 |
Сообщение № 25
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 206
Репутация:
4
±
Замечаний:
0% ±
Excel 2019
MikeVol, вот теперь нормально стало. Спасибо.
MikeVol, вот теперь нормально стало. Спасибо. Dalm
Ответить
Сообщение MikeVol, вот теперь нормально стало. Спасибо. Автор - Dalm Дата добавления - 05.07.2026 в 16:22
Dalm
Дата: Понедельник, 06.07.2026, 02:02 |
Сообщение № 26
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 206
Репутация:
4
±
Замечаний:
0% ±
Excel 2019
MikeVol, я увеличил расстояние между желтыми ячейками - и макрос стал выдавать только первую часть большой таблицы. Остальные части - игнорирует, хотя на листе по прежнему находятся желтые ячейки с надписью "Группа". Как исправить макрос ?
MikeVol, я увеличил расстояние между желтыми ячейками - и макрос стал выдавать только первую часть большой таблицы. Остальные части - игнорирует, хотя на листе по прежнему находятся желтые ячейки с надписью "Группа". Как исправить макрос ? Dalm
Ответить
Сообщение MikeVol, я увеличил расстояние между желтыми ячейками - и макрос стал выдавать только первую часть большой таблицы. Остальные части - игнорирует, хотя на листе по прежнему находятся желтые ячейки с надписью "Группа". Как исправить макрос ? Автор - Dalm Дата добавления - 06.07.2026 в 02:02