Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Удаление диапазона строк при помощи макроса - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление диапазона строк при помощи макроса (Иное)
Удаление диапазона строк при помощи макроса
Vadissimus Дата: Четверг, 06.03.2014, 16:57 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Раз по правилам нужно под каждый вопрос заводить тему, так и буду делать.

У меня многостраничный .xls-файл.
На первой странице ("Данные") я ввожу данные заказа (пластиковые карты, по работе), включая тираж и то, по сколько карт будет в коробке.
Другая страница ("Этикетки") формируется сама, собирая данные с первой.
Если тираж 1000 карт, а в коробке их будет по 250, то этикеток должно быть 4. Соответственно мне нужно удалить на странице с этикетками все строки, начиная с 6 (2,3,4,5 - этикетки, 1-заголовки для дальнейшего импорта в .txt и объединение с Индизайном).

Если бы мне всегда было нужно удалять с 6-й, я бы использовал такой код:
[vba]
Код
Rows("6:5000").Select
Selection.Delete Shift:=xlUp
[/vba]

Но мне надо, что бы вместо "6" бралась цифра, которая будет зависеть от тиража и высчитываться в, допустим, ячейке A2.
Взять эту цифру я могу:
[vba]
Код
Dim x
x = Application.ActiveWorkbook.Sheets("Этикетка").Cells(2, 1)
[/vba]

Но вот если я в верхнюю формулу вместо "6" вставлю "x", то это ошибка кода.
Подскажите, пожалуйста, что поменять в коде?
 
Ответить
СообщениеРаз по правилам нужно под каждый вопрос заводить тему, так и буду делать.

У меня многостраничный .xls-файл.
На первой странице ("Данные") я ввожу данные заказа (пластиковые карты, по работе), включая тираж и то, по сколько карт будет в коробке.
Другая страница ("Этикетки") формируется сама, собирая данные с первой.
Если тираж 1000 карт, а в коробке их будет по 250, то этикеток должно быть 4. Соответственно мне нужно удалить на странице с этикетками все строки, начиная с 6 (2,3,4,5 - этикетки, 1-заголовки для дальнейшего импорта в .txt и объединение с Индизайном).

Если бы мне всегда было нужно удалять с 6-й, я бы использовал такой код:
[vba]
Код
Rows("6:5000").Select
Selection.Delete Shift:=xlUp
[/vba]

Но мне надо, что бы вместо "6" бралась цифра, которая будет зависеть от тиража и высчитываться в, допустим, ячейке A2.
Взять эту цифру я могу:
[vba]
Код
Dim x
x = Application.ActiveWorkbook.Sheets("Этикетка").Cells(2, 1)
[/vba]

Но вот если я в верхнюю формулу вместо "6" вставлю "x", то это ошибка кода.
Подскажите, пожалуйста, что поменять в коде?

Автор - Vadissimus
Дата добавления - 06.03.2014 в 16:57
Hugo Дата: Четверг, 06.03.2014, 17:14 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
[vba]
Код
Rows(x & ":5000")
[/vba]
Но это думаю неправильный подход... Хотя всю задачу мы не видим, но я бы лишнее или скрывал, или менял цвет шрифта, или менял область печати...


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение[vba]
Код
Rows(x & ":5000")
[/vba]
Но это думаю неправильный подход... Хотя всю задачу мы не видим, но я бы лишнее или скрывал, или менял цвет шрифта, или менял область печати...

Автор - Hugo
Дата добавления - 06.03.2014 в 17:14
Vadissimus Дата: Четверг, 06.03.2014, 17:46 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Hugo, большое спасибо. Так работает.

Почему подход не правильный? Эта страничка потом экспортируется в .txt (вы мне в соседней теме с этим помогли) и в ней должно быть нужное количество строк.
Иначе у меня потом при объединении в Индизайне будут лишние страницы.

Прикрепил .xlsm-файл.
К сообщению приложен файл: __.xlsm (26.2 Kb)
 
Ответить
СообщениеHugo, большое спасибо. Так работает.

Почему подход не правильный? Эта страничка потом экспортируется в .txt (вы мне в соседней теме с этим помогли) и в ней должно быть нужное количество строк.
Иначе у меня потом при объединении в Индизайне будут лишние страницы.

Прикрепил .xlsm-файл.

Автор - Vadissimus
Дата добавления - 06.03.2014 в 17:46
Hugo Дата: Четверг, 06.03.2014, 18:13 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Посмотрел - ну да, если удаляются строки, зкспортируется, а потом закрывается без сохранения, то можно и так.
Просто иначе откуда затем будете снова брать исходный вариант бланка...


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеПосмотрел - ну да, если удаляются строки, зкспортируется, а потом закрывается без сохранения, то можно и так.
Просто иначе откуда затем будете снова брать исходный вариант бланка...

Автор - Hugo
Дата добавления - 06.03.2014 в 18:13
Vadissimus Дата: Пятница, 07.03.2014, 14:58 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Hugo, да. Я допишу макрос так, что бы он сохранял таблицу в .xlsm, затем удалял лишнее и производил экспорт нужных листов в .txt.
В итоге таблица останется с данными этого заказа и если клиент захочет еще тираж, то нет проблем.
 
Ответить
СообщениеHugo, да. Я допишу макрос так, что бы он сохранял таблицу в .xlsm, затем удалял лишнее и производил экспорт нужных листов в .txt.
В итоге таблица останется с данными этого заказа и если клиент захочет еще тираж, то нет проблем.

Автор - Vadissimus
Дата добавления - 07.03.2014 в 14:58
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление диапазона строк при помощи макроса (Иное)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!