Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Макрос на VBA для удаления столбцов и строк, столбцы удаляет, а строки нет
 
Всем доброго времени суток!

У меня возникла проблема с макросом ( знаю, что он ужасен, состоит из макрорекордера и гугления чуть менее, чем полностью, но прошу понять и простить.)
Итак, есть  здоровенная таблица (заголовки и расположение столбцов неизменно), в которую формулами притянуты данные из других таблиц.
Требуется создать копию листа с таблицей (с таким же названием и добавлением _ ) , затем на ней заменить все формулы значениями и удалить некоторые столбцы\строки.
Я сделал макрос, где ещё попытался реализовать проверку на ошибку - в случае если на первоначальном листе кто-то запустил макрос второй раз, то выскакивает сообщение, что лист с таким именем существует.
Однако возникли 2 непонятные мне вещи:
1. Макрос удаляет столбцы, но не удаляет строки.
2. Макрос выводит сообщение что лист с таким именем существует ...ВСЕГДА!

Буду благодарен, если кто поможет советом.
Текст макроса прилагаю. Данные на которых он работает, к сожалению предоставить не могу, так как СБ зорко бдит.
 
Цитата
derekT написал:
2. Макрос выводит сообщение что лист с таким именем существует ...ВСЕГДА!
Ибо у вас всегда ошибка
Не помню про ограничения длины строки, но это
Код
    Range("9:28, 30:49, 51:115, 117:124, 128:129, 132:151, 153:172, 174:193, 198:201, 203:208, 210:214, 216:239, 242:244, 246:248, 250:254").Select

уже вполне себе работает
 
Прошу прощения, но я не совсем вас понял.
Строка в Range слишком длинная и ей нужно разбить на несколько частей?
 
Не нужно использовать для нее текстовое представление большой длинны.
Код
UNION(RANGE("9:28, 30:49, 51:115, 117:124"),RANGE("128:129, 132:151, 153:172, 174:193, 198:201"))

Но тоже без фанатизма.
Изменено: БМВ - 21 ноя 2020 19:25:21
По вопросам из тем форума, личку не читаю.
 
Вот это:
Range("9:28,30:49,51:115, 117:124, 128:129, 132:151, 153:172, 174:193, 198:201, 203:208, 210:214,216:239, 242:244, 246:248, 250:254, 258,260, 264:275, 277:278").Select
замените на вот это:
Range("9:28,30:49,51:115, 117:124, 128:129, 132:151, 153:172, 174:193, 198:201, 203:208, 210:214,216:239, 242:244, 246:248, 250:254, 258:258, 260:260, 264:275, 277:278").Select

PS
И можно одной строкой:
Range("9:28,30:49,51:115, 117:124, 128:129, 132:151, 153:172, 174:193, 198:201, 203:208, 210:214,216:239, 242:244, 246:248, 250:254, 258:258, 260:260, 264:275, 277:278").Delete Shift:=xlUp
тогда
Selection.Delete Shift:=xlToLeft - не нужно будет
Изменено: Михаил Лебедев - 21 ноя 2020 19:40:36
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
БМВ, Михаил Лебедев,

Спасибо огромное!
Всё заработало.
Страницы: 1
Читают тему (гостей: 1)
Наверх