Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата blackeangel:
во первых, заменяет последним столбцом все предыдущие »
Вообще-то не так . Но ошибка присутствует, надо заменить в ветви Else:
Код: Выделить весь код
Set objDestRange = .UsedRange.Offset(ColumnOffset:=1).EntireColumn
на:
Код: Выделить весь код
Set objDestRange = .Columns.Item(.UsedRange.Columns.Count).Offset(ColumnOffset:=1).EntireColumn
Цитата blackeangel:
Второе, берет не нужный лист, тк мне надо index-1, »
Где берёт? От чего берёт? Поясните словами, где и что нужно сделать.

Цитата blackeangel:
По первой проблеме-видимо надо завязываться на кол-во элементов массива заголовков. И вставлять их по очереди в определенный столбец, который равен порядковому номеру заголовка столбца+1 в массиве. »
Можно и так. Но проще ориентироваться на количество столбцов уже заполненной части целевого Рабочего листа, то есть — танцевать от .UsedRange.Columns (поскольку мы заполняем от самого первого столбца — этого будет достаточно).

Цитата blackeangel:
И ещё вопрос, как вставить лист, так чтоб он был неактивным? »
Никак. И я Вам написал выше — нужно прекращать порочную практику увязки кода с активностью Рабочих листов и книг. Вошли в код — сразу запомнили ссылку на активный Рабочий лист в переменной, если он Вам понадобится. Добавляете лист — сразу запоминаете возвращаемую методом ссылку в переменной. И далее работаете только с этими объектными переменными. А Вы опять Copy-Paste с увязкой на ActiveSheet:
Код: Выделить весь код
        .Columns(oboz).Copy
        Columns(i).Select
        ActiveSheet.Paste
продолжаете пользовать.

Отправлено: 18:40, 05-05-2017 | #7