Подскажите, пожалуйста, как привести вариант А к варианту Б. Файл прилагается.
Сам пробовал сперва фильтрануть по желтому, потом ставил =, потом протягивал, потом снимал фильтр, потом выделял столбец, копировал, вставлял, нажимал 123, потом F5, потом заполнял, потом опять фильтровал по желтым и удалял желтые.
Слишком долго. Однако, если писать макрос - на эти действия - когда вариант А становится по количеству длиннее между ФИО, потому что каждый день данные разные - то мне автоматизировать превращение варианта А в Б становится невозможно.
Надеюсь, это возможно все-таки. Что можно сделать? А то я сводные таблицы освоил, ВПР, ГПР, ЕСЛИ, макросы писать научился, F5 тоже, а дальше мозгов нет
Подскажите, пожалуйста, как привести вариант А к варианту Б. Файл прилагается.
Сам пробовал сперва фильтрануть по желтому, потом ставил =, потом протягивал, потом снимал фильтр, потом выделял столбец, копировал, вставлял, нажимал 123, потом F5, потом заполнял, потом опять фильтровал по желтым и удалял желтые.
Слишком долго. Однако, если писать макрос - на эти действия - когда вариант А становится по количеству длиннее между ФИО, потому что каждый день данные разные - то мне автоматизировать превращение варианта А в Б становится невозможно.
Надеюсь, это возможно все-таки. Что можно сделать? А то я сводные таблицы освоил, ВПР, ГПР, ЕСЛИ, макросы писать научился, F5 тоже, а дальше мозгов нетant6729
Нагородил я конечно в коде, если посидеть, подумать, то и сократить можно. Если правильно понял, то вот пример. Данные берутся из Лист2 и заносятся на пустой Лист1
Нагородил я конечно в коде, если посидеть, подумать, то и сократить можно. Если правильно понял, то вот пример. Данные берутся из Лист2 и заносятся на пустой Лист1Abakumov
Не работает. Вообще, в идеал, нужно чтобы вариант Б заменял А. А исчезал, в тех же столбцах из А получался Б. Я попробовал ваш вариант, удалив у себя конечный обработанный вид Б с листа1. Таки, не работает тогда!
Не работает. Вообще, в идеал, нужно чтобы вариант Б заменял А. А исчезал, в тех же столбцах из А получался Б. Я попробовал ваш вариант, удалив у себя конечный обработанный вид Б с листа1. Таки, не работает тогда!ant6729
Sub макрос_шмакрос() Dim i&, ii&, x$ Dim a() a = Range("A1:B" & Cells(Rows.Count, 1).End(xlUp).Row).Value ii = 1 ReDim b(1 To UBound(a), 1 To 3) For i = 1 To UBound(a) If Not IsNumeric(a(i, 1)) Then x = a(i, 1) i = i + 1 End If b(ii, 1) = a(i, 1) b(ii, 2) = a(i, 2) b(ii, 3) = x ii = ii + 1 Next Cells(1, 1).Resize(UBound(b), 3) = b End Sub
[/vba]
[vba]
Код
Sub макрос_шмакрос() Dim i&, ii&, x$ Dim a() a = Range("A1:B" & Cells(Rows.Count, 1).End(xlUp).Row).Value ii = 1 ReDim b(1 To UBound(a), 1 To 3) For i = 1 To UBound(a) If Not IsNumeric(a(i, 1)) Then x = a(i, 1) i = i + 1 End If b(ii, 1) = a(i, 1) b(ii, 2) = a(i, 2) b(ii, 3) = x ii = ii + 1 Next Cells(1, 1).Resize(UBound(b), 3) = b End Sub
Чесал репу, чесал, почему не работает С файлом 9801301.xls работать будет, а вот с файлом 8295915.xls НЕТ.
Кто кого перехитрил?
[vba]
Код
Sub Мяу() Dim r As Range, cl As Range, i& Application.ScreenUpdating = False Set r = Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row) For Each cl In r If Len(cl.Offset(, 1)) Then Else cl.Offset(, 2).Value = cl.Value End If Next r.Offset(, 2).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" r.Offset(, 2).Value = r.Offset(, 2).Value For i = r.Count To 1 Step -1 If Len(Cells(i, 2)) Then Else Rows(i).Delete End If Next End Sub
[/vba]
Чесал репу, чесал, почему не работает С файлом 9801301.xls работать будет, а вот с файлом 8295915.xls НЕТ.
Кто кого перехитрил?
[vba]
Код
Sub Мяу() Dim r As Range, cl As Range, i& Application.ScreenUpdating = False Set r = Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row) For Each cl In r If Len(cl.Offset(, 1)) Then Else cl.Offset(, 2).Value = cl.Value End If Next r.Offset(, 2).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" r.Offset(, 2).Value = r.Offset(, 2).Value For i = r.Count To 1 Step -1 If Len(Cells(i, 2)) Then Else Rows(i).Delete End If Next End Sub