Страницы: 1
RSS
Удаляется первая строка при сохранении листа в отдельный файл, Удаляется первая строка при сохранении листа в отдельный файл
 
Доброго всем времени суток! Обнаружил проблему: Удаляется первая строка при сохранении листа в отдельный файл.

Коротко о том как сейчас работает файл: Есть 2 листа, в первом много колонок, второй лист формируется из определенных колонок первого листа на котором в первой колонке строки выделяются чекбоксами (через шрифт Marlett). На двух листах использую "умные таблицы", и когда нажимаю на кнопку сохранить на листе 2 создается папка Отчет в ней файл с названием листа и текущей датой, только в созданном файле первая строка которая была на листе 2 становится пустой.

Подскажите пожалуйста как исправить этот глюк (или скорее всего мой косяк  :) ) Файл прикрепляю

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

Заранее благодарен за помощь
 
Дело в том что при копировании листа у Вас срабатывает процедура:
Код
Private Sub Worksheet_Activate()
и выполняется уже на скопированном листе и вот этой проверкой:
Код
    If (Not Not arrTr) <> 0 Then
        .Cells(1, 1).Resize(UBound(arrTr) + 1, 13) = arrTr
    End If
и затирается эта строка.
Как вариант временно менять имя исходного листа и проверять процедуру Private Sub Worksheet_Activate() только на это имя, а потом возвращать имя назад.
Изменено: GRIM - 20.11.2019 16:04:09
 
GRIM, спасибо! Вопрос с затиранием первой строки таким образом решился, только при повторном изменении чекбоксов на первом листе на втором листе не обновляются данные и название 2 листа не меняется на исходное а остается "ТЕМП" как это можно исправить?
 
GRIM, Еще раз спасибо за пинок в нужном направлении  :)  Придумал как уйти от этой проблемы: перед выполнением сохранения Application.EnableEvents = False
после опять включаем Application.EnableEvents = True
 
Цитата
TMD написал:
название 2 листа не меняется на исходное а остается "ТЕМП"
Да, действительно упустил этот момент. Нужно было добавить возврат старого имени после отмены сохранения:
Код
If cFileName = False Then ActiveSheet.Name = y: Exit Sub
Страницы: 1
Наверх