Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2009, 11:26   #1
FormAlDeGid
Пользователь
 
Аватар для FormAlDeGid
 
Регистрация: 21.10.2009
Сообщений: 58
По умолчанию Удаление строки по значению

И снова здасте Всем.

Задача вот в чем: есть сводная таблица в которую копируются строки из нескольких файлов после чего надо удалить последнюю стоку из каждой скопированной части. Строка представляет из себя итоговые подсчеты выше стоящих значений, "Итого 548,00 0,000 0,00 548,00" есть предположение что можно удалять всю строку исходя из того что в ней содержится текст "итого". Подскажите как это реализовать.
FormAlDeGid вне форума Ответить с цитированием
Старый 17.11.2009, 11:30   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Подскажите как это реализовать.
1) выкладываете файл
2) помечаете цветом строки, подлежащие удалению
3) получаете готовый макрос
EducatedFool вне форума Ответить с цитированием
Старый 17.11.2009, 11:56   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в сводной - может просто настроить показывать/не показывать итог
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 17.11.2009, 12:13   #4
Volodshan
Форумчанин
 
Регистрация: 20.05.2008
Сообщений: 241
По умолчанию

Зачем копировать, если удалять?..
Сводная в каком понимании - Сводная XL или в одну свели с разных?..
Консолидация - выход?..
Или трехмерные ссылки?..
Volodshan вне форума Ответить с цитированием
Старый 17.11.2009, 13:52   #5
FormAlDeGid
Пользователь
 
Аватар для FormAlDeGid
 
Регистрация: 21.10.2009
Сообщений: 58
По умолчанию

Сводный файл я формирую вручную одну копию сохраняю в исходном виде а вторую форматирую уже написанным макросом для дальнейшей работы. надо дописать в макрос код который будет удалять ненужные строки (их я отметил желтым)
Вложения
Тип файла: rar Рабочий стол.rar (17.3 Кб, 22 просмотров)
FormAlDeGid вне форума Ответить с цитированием
Старый 17.11.2009, 14:02   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

По-моему, достаточно удалить все строки, в столбце "A" которых пусто. Например, так:
Код:
Sub DelRows()
    Dim i As Long: Application.ScreenUpdating = False
    For i = Cells(Rows.Count, 6).End(xlUp).Row To 1 Step -1
        If Cells(i, 1) = "" Then Rows(i).Delete
    Next
End Sub
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 17.11.2009 в 14:07.
SAS888 вне форума Ответить с цитированием
Старый 17.11.2009, 14:22   #7
FormAlDeGid
Пользователь
 
Аватар для FormAlDeGid
 
Регистрация: 21.10.2009
Сообщений: 58
По умолчанию

SAS888 клевенько но не совсем. надо чтобы пустые строки-разделители остались.
FormAlDeGid вне форума Ответить с цитированием
Старый 17.11.2009, 15:38   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub УдалениеИтоговыхСтрок()
    On Error Resume Next: Application.ScreenUpdating = False
    While Err = 0
        Range("f:f").Find("Итого").EntireRow.Delete
    Wend
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 17.11.2009, 15:53   #9
FormAlDeGid
Пользователь
 
Аватар для FormAlDeGid
 
Регистрация: 21.10.2009
Сообщений: 58
По умолчанию

EducatedFool примного вам благодарен =)

еще по строкам в том же сводном файле.
как будет выглядеть код подписывающий в каждой пустой строке в столбце "М" какой нибудь символ или букву. это надо т.к. после форматирования столбец "К" становится столбцом "М" и фильтруется по значению. в некоторых случаях надо скрыть все пустые строки.
FormAlDeGid вне форума Ответить с цитированием
Старый 17.11.2009, 16:00   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub test()
    On Error Resume Next
    Intersect([m:m], ActiveSheet.UsedRange).SpecialCells(xlCellTypeBlanks).Formula = "буква"
End Sub
Ну а лучше так:

Код:
Sub test()
    On Error Resume Next: Application.ScreenUpdating = False
    While Err = 0
        Range("f:f").Find("Итого").EntireRow.Delete
    Wend

    ' тут ваш код обработки листа

    ' помечаем пустые строки
    ActiveSheet.UsedRange.Columns(1).SpecialCells(xlCellTypeBlanks).Offset(, 12).Formula = "буква"
End Sub

Последний раз редактировалось EducatedFool; 17.11.2009 в 16:14.
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление символа из строки forsaken66 Общие вопросы C/C++ 4 06.11.2009 11:33
Удаление строки из файла. Arhe Общие вопросы .NET 4 03.11.2009 12:12
Удаление из строки program123 Помощь студентам 4 21.05.2009 12:52
Удаление строки Minton87 Общие вопросы Delphi 4 07.05.2009 02:32
Удаление строки из DBGrid XATAB БД в Delphi 3 10.03.2009 08:29