Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Удалить колонки в Excel c 1C
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Skodnik
Добрый день, форумчане!
То ли погода дает о себе знать, то ли еще не проснулся. Необходимо в обработке, при открытии Ексель-файла удалить первые 4 столбца:
 РабочаяКнига=ExcelApp.Workbooks.Open(СокрЛП(ВыбФайл)); 
Страница  = РабочаяКнига.Worksheets(1);
Страница.Range("A:D").Delete(-4159);  //не удаляется


-=VJ=-
А зачем там "(-4159)"?
И зачем Range? Удаляйте Columns.
Skodnik
Цитата(-=VJ=- @ 25.03.13, 11:21) необходимо зарегистрироваться для просмотра ссылки
А зачем там "(-4159)"?
И зачем Range? Удаляйте Columns.

Записал макрос в Екселе, по удалению строк
Columns("A:D").Select
Selection.Delete Shift:=xlToLeft


так вот
Delete Shift:=xlToLeft
аналог
 Delete(-4159)

Vofka
А можно узнать цель?
Skodnik
Цитата(Vofka @ 25.03.13, 11:40) необходимо зарегистрироваться для просмотра ссылки
А можно узнать цель?

Со сторонней программы выгружаются данные в Ексель файл.
В обработке 1С четко указано с какой колонки брать данные. Обрабатывается порядка 20 колонок.
Форма Ексель файла с данными поменялась, добавилось вначале 4 колонки, вот чтоб не менять номера колонок по обработке, думаю проще удалить эти 4 столбца.
-=VJ=-
Цитата(Skodnik @ 25.03.13, 11:32) необходимо зарегистрироваться для просмотра ссылки
Записал макрос в Екселе, по удалению строк


xlToLeft - это не удаление строк, это именно удаление диапазона, после которого оставшиеся ячейки необходимо сдвинуть (xlToLeft можно вообще не употреблять, они по умолчанию двигаются влево).
Для колонок это всё необязательно.
Columns(i).Delete в цикле и всё.
Skodnik
Цитата(-=VJ=- @ 25.03.13, 11:47) необходимо зарегистрироваться для просмотра ссылки
xlToLeft - это не удаление строк, это именно удаление диапазона, после которого ячейки можно сдвинуть либо влево(xlToLeft), либо вверх.
Для колонок это всё необязательно.
Columns(i).Delete в цикле и всё.

Мне и надо удалить диапазон с 4 колонок:"A" "B" "C" "D" и сдвинуть ячейки в лево
Пример:
Vofka
Цитата(Skodnik @ 25.03.13, 11:46) необходимо зарегистрироваться для просмотра ссылки
вот чтоб не менять номера колонок по обработке, думаю проще удалить эти 4 столбца.

Лично я считаю, что проще и правильнее поменять номера колонок. Но кто же ищет легкий путь. smile.gif
Flexy
А так:
ХлТуЛэфт = Число(-4159);
Columns("A:D").Select
Selection.Delete Shift:=ХлТуЛэфт
-=VJ=-
Цитата(Skodnik @ 25.03.13, 11:56) необходимо зарегистрироваться для просмотра ссылки
Мне и надо удалить диапазон

Цитата(Skodnik @ 25.03.13, 11:56) необходимо зарегистрироваться для просмотра ссылки
удалить первые 4 столбца


Определитесь тогда сначала, что Вам нужно удалять - диапазон или столбцы.

Цитата(Vofka @ 25.03.13, 12:02) необходимо зарегистрироваться для просмотра ссылки
Лично я считаю, что проще и правильнее поменять номера колонок. Но кто же ищет легкий путь. smile.gif


правильнее и проще первым ячейкам колонок давать названия и потом искать по названию, а не по номеру - тогда сколько ни добавляй, всё равно будет работать.

но легкие пути - таки да smile.gif
Skodnik
Цитата(Flexy @ 25.03.13, 12:08) необходимо зарегистрироваться для просмотра ссылки
А так:
ХлТуЛэфт = Число(-4159);
Columns("A:D").Select
Selection.Delete Shift:=ХлТуЛэфт

Не получиться!

Цитата(-=VJ=- @ 25.03.13, 12:11) необходимо зарегистрироваться для просмотра ссылки
Определитесь тогда сначала, что Вам нужно удалять - диапазон или столбцы.

Удалить то надо столбцы.

Цитата(-=VJ=- @ 25.03.13, 12:11) необходимо зарегистрироваться для просмотра ссылки
правильнее и проще первым ячейкам колонок давать названия и потом искать по названию, а не по номеру - тогда сколько ни добавляй, всё равно будет работать.

но легкие пути - таки да smile.gif

Названия колонкам не давали, писал ведь что выгрузка происходит со сторонней программы и поменять шаблон выгрузки в ексель я не могу.
-=VJ=-
Цитата(Skodnik @ 25.03.13, 12:53) необходимо зарегистрироваться для просмотра ссылки
Удалить то надо столбцы.


Целиком? Сверху донизу? Или всё же вертикальный диапазон?
Skodnik
Цитата(-=VJ=- @ 25.03.13, 13:05) необходимо зарегистрироваться для просмотра ссылки
Целиком? Сверху донизу? Или всё же вертикальный диапазон?

Целиком удалить 4 первых столбца от первой строчки до последней, я пример на картинке показал как надо. icon_beer17.gif
Skodnik
Так вот работает. VJ во втором посте подсказывал. faceoff.gif
РабочаяКнига = ExcelApp.Workbooks.Open(СокрЛП(ВыбФайл)); 
Страница  = РабочаяКнига.Worksheets(1);
Страница.Columns("A:D").Delete(-4159);
Vofka
Цитата(Skodnik @ 25.03.13, 14:22) необходимо зарегистрироваться для просмотра ссылки
VJ во втором посте подсказывал.

А где же плюс VJ-ю?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.