Не удаляются строки в Excel.

Программирование на Visual Basic for Applications
chempion
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 26.04.2006 (Ср) 9:21

Не удаляются строки в Excel.

Сообщение chempion » 01.02.2007 (Чт) 10:06

.. копирую лист, затем вставляю значения в новый лист с учетом форматов (причем только значения). Затем удаляю все строки значения которых в столбце С = "фак.". Затем удаляю не нужные мне стобцы.
Короче мне нужно из гиганского листа получить ежемесячный отчет и сохранить его.

Трабл: в оригинале строки со значением "фак." удаляются, а вот при попытке сделать ту же процедуру с другим столбцом и другим значением ячейки нет. Попытался создать небольшой аналог для наглядности, но в нём вообще не работает макрос.

Помогите устранить ошибку!!!!!
Вложения
Для ВБ.xls
Кривой макрос на примере тут
(42 Кб) Скачиваний: 74
Перед пропастью каждый шаг-решающий...

Genyaa
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 17.10.2006 (Вт) 13:46

Сообщение Genyaa » 01.02.2007 (Чт) 20:26

Я бы предложил для сохранения ширины столбцов скопировать весь лист и вставить (PasteSpecial) только данные по месту (если это действительно нужно):

Код: Выделить всё
    Sheets("Лист1").Copy Before:=Sheets("Лист1")
    With ActiveSheet
        .Cells(1, 1).Select
        .Name = "Расстановка+"
        .UsedRange.Copy
        .UsedRange.PasteSpecial Paste:=xlValues
    End With


Удаление столбцов Range("B:B,D:E").Delete у меня отработалось без проблем.

А вот поиск "фак" у Вас происходит не в том столбце - поэтому и не находит их, и поэтому строки не удаляются.

Чтобы сделать высоты строк по содержимому, нужно эти строки и иметь в виду, а не столбцы... т.е. я думаю нужно убрать Columns("B:H").Select.
Всякое решение плодит новые проблемы.

Чудовище под кроватью
Обычный пользователь
Обычный пользователь
 
Сообщения: 88
Зарегистрирован: 27.11.2006 (Пн) 14:46
Откуда: А из ника не ясно?

Re: Не удаляются строки в Excel.

Сообщение Чудовище под кроватью » 02.02.2007 (Пт) 10:57

Не понял... копируешь лист, а потом на скопированный лист копируешь значения? А какой смысл? - Они ведь уже там будут после копирования листа. Аналогично - не ясен смысл подгона форматов листа-копии под исходный лист.
Если хочешь убрать формулы, то, видимо, после копирования листа надо добавить:
Код: Выделить всё

Rem: если не знаешь, где конкретно находятся формулы, то:
With ActiveSheet.UsedRange
.Value = .Value
End With

Rem: Если знаешь, где расположены формулы, то:
With Range(диапазон_с_формулами)
.Value = .Value
End With
У-у-у!!

Genyaa
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 17.10.2006 (Вт) 13:46

Re: Не удаляются строки в Excel.

Сообщение Genyaa » 02.02.2007 (Пт) 14:01

Чудовище под кроватью писал(а):
Код: Выделить всё
With ActiveSheet.UsedRange
.Value = .Value
End With

Да, это проще. Согласен.
Всякое решение плодит новые проблемы.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 99

    TopList