Формул, которые проверяют цвет текста в ячейках, я не встречал Посему такое только через макросы (оно же VBA), тему тогда надо переносить, либо новую создавать. Сам код несложный. [moder]Не надо ничего переносить. Здесь можно ответить[/moder]
Формул, которые проверяют цвет текста в ячейках, я не встречал Посему такое только через макросы (оно же VBA), тему тогда надо переносить, либо новую создавать. Сам код несложный. [moder]Не надо ничего переносить. Здесь можно ответить[/moder]Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Сообщение отредактировал Pelena - Понедельник, 30.11.2015, 17:13
Udik, не хотелось бы плодить темы, если у вас есть возможность помочь в решении вопроса помогите пожалуйста. Ибо ручками в каждом документе по 800 раз это действо проводить уже устал)
Udik, не хотелось бы плодить темы, если у вас есть возможность помочь в решении вопроса помогите пожалуйста. Ибо ручками в каждом документе по 800 раз это действо проводить уже устал)ЦИУС
Public Sub insStr() Dim rowNum As Byte Dim i As Integer Dim j, buf Dim rng1 As Range Const lName As String = "Лист1" Const startRow As Integer = 30
With Worksheets(lName) i = .Cells(Rows.Count, 1).End(xlUp).Row j = .Cells(4, 1).Font.Color Set rng1 = Range("A5:G29")
For i = i To startRow Step -1 buf = .Cells(i, 1).Font.Color If buf = j Then Debug.Print buf = j .Cells(i + 1, 1).Select Selection.Resize(rng1.Rows.Count).EntireRow.Insert Shift:=xlShiftDown rng1.Copy Destination:=Selection End If Next i
End With
End Sub
[/vba]
Ну как-то так [vba]
Код
Public Sub insStr() Dim rowNum As Byte Dim i As Integer Dim j, buf Dim rng1 As Range Const lName As String = "Лист1" Const startRow As Integer = 30
With Worksheets(lName) i = .Cells(Rows.Count, 1).End(xlUp).Row j = .Cells(4, 1).Font.Color Set rng1 = Range("A5:G29")
For i = i To startRow Step -1 buf = .Cells(i, 1).Font.Color If buf = j Then Debug.Print buf = j .Cells(i + 1, 1).Select Selection.Resize(rng1.Rows.Count).EntireRow.Insert Shift:=xlShiftDown rng1.Copy Destination:=Selection End If Next i
Макрос работает, но если можно еще одну хотелку, он вставляет блок Range("A5:G29"), если блока нет, или он находится в других ячейках макрос будет работать некорректно. Существует ли возможность в коде макроса забить значение этого блока? К примеру я открываю документ, а у меня в первом столбце идет нумерация и самого блока в A5:G29 нет.
Спасибо за помощь! это уже хорошее решение, но если можно его немного усложнить
Макрос работает, но если можно еще одну хотелку, он вставляет блок Range("A5:G29"), если блока нет, или он находится в других ячейках макрос будет работать некорректно. Существует ли возможность в коде макроса забить значение этого блока? К примеру я открываю документ, а у меня в первом столбце идет нумерация и самого блока в A5:G29 нет.
Спасибо за помощь! это уже хорошее решение, но если можно его немного усложнитьЦИУС
Можно блок на другой лист разместить и оттуда считывать, или всё внутри макроса прописывать. Но последнее муторно, т.к. надо расписывать для каждой группы ячеек.
Можно блок на другой лист разместить и оттуда считывать, или всё внутри макроса прописывать. Но последнее муторно, т.к. надо расписывать для каждой группы ячеек.Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Это имя листа, по коду видно (Const lName As String = "Лист1"). В принципе можно напрямую использовать в данном случае. Но код имеет тенденцию усложняться и переписываться, я сразу имя в константу забил
Это имя листа, по коду видно (Const lName As String = "Лист1"). В принципе можно напрямую использовать в данном случае. Но код имеет тенденцию усложняться и переписываться, я сразу имя в константу забил Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Udik, Благодарю за помощь! Даже если учесть, что придется переносить информацию всегда в этот документ для добавления ячеек, это все равно очень сильно сократит затраты времени. Ибо раньше мы с товарищами добавляли все вручную и тратили до суток на это, сейчас декабрь и это просто манна!
Udik, Благодарю за помощь! Даже если учесть, что придется переносить информацию всегда в этот документ для добавления ячеек, это все равно очень сильно сократит затраты времени. Ибо раньше мы с товарищами добавляли все вручную и тратили до суток на это, сейчас декабрь и это просто манна!ЦИУС
Udik, Порядок моих действий: 1. Открываю документ с макросом (insStr.xlsb) 2. Открываю свой документ в котором необходимо добавить блоки 3. Размещаю в своем документе блок строго как в файле (insStr.xlsb) 4. С 30 строки размещаю все данные между которыми необходимо вставить блок 5. Жмакаю макрос и запустить 6. Вылетает ошибка 400 без каких либо данных
Excel 2007
Udik, Порядок моих действий: 1. Открываю документ с макросом (insStr.xlsb) 2. Открываю свой документ в котором необходимо добавить блоки 3. Размещаю в своем документе блок строго как в файле (insStr.xlsb) 4. С 30 строки размещаю все данные между которыми необходимо вставить блок 5. Жмакаю макрос и запустить 6. Вылетает ошибка 400 без каких либо данных
Вы макрос в свой документ скопировали? Имя листа как в примере? Если не получается выложите сюда в усеченном виде, чтобы <100кб == Похоже вам несколько другой алгоритм нужен, типа такого: открыть документ с блоком, запустить макрос, он запросит какой файл править (если их немного), Вы указываете, макрос обрабатывает файл, опять макрос запускаем.
Вы макрос в свой документ скопировали? Имя листа как в примере? Если не получается выложите сюда в усеченном виде, чтобы <100кб == Похоже вам несколько другой алгоритм нужен, типа такого: открыть документ с блоком, запустить макрос, он запросит какой файл править (если их немного), Вы указываете, макрос обрабатывает файл, опять макрос запускаем.Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Сообщение отредактировал Udik - Вторник, 01.12.2015, 16:08