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

Вход

Регистрация

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

 

= Мир MS Excel/При очистке "умной таблицы"макросом слетают формулы - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » При очистке "умной таблицы"макросом слетают формулы (Макросы/Sub)
При очистке "умной таблицы"макросом слетают формулы
Sancho Дата: Пятница, 08.07.2016, 14:15 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 0% ±

2007, 2010, 2013
Всем привет!
Наткнулся на проблему при очистке макросом перед заполнением "умной таблицы" - слетают формулы, расположенные в столбце C, ссылающиеся на ячейки в "умной таблице" на #ССЫЛКА. причем те формулы которые расположены в той же строке на какую ссылается формула то все нормально. Если выделить столбец таблицы вручную и нажать клавишу del то все формулы не слетают.
Записал макрос на очистку перед заполнением кнопкой del получил Selection.ClearContents, подставил вместо Selection.Clear - все равно при очистке макросом формулы "слетают".

Каким еще способом можно очистить таблицу без потери формул?
К сообщению приложен файл: 12.xlsm(21Kb)
 
Ответить
СообщениеВсем привет!
Наткнулся на проблему при очистке макросом перед заполнением "умной таблицы" - слетают формулы, расположенные в столбце C, ссылающиеся на ячейки в "умной таблице" на #ССЫЛКА. причем те формулы которые расположены в той же строке на какую ссылается формула то все нормально. Если выделить столбец таблицы вручную и нажать клавишу del то все формулы не слетают.
Записал макрос на очистку перед заполнением кнопкой del получил Selection.ClearContents, подставил вместо Selection.Clear - все равно при очистке макросом формулы "слетают".

Каким еще способом можно очистить таблицу без потери формул?

Автор - Sancho
Дата добавления - 08.07.2016 в 14:15
Саня Дата: Пятница, 08.07.2016, 14:33 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1017
Репутация: 501 ±
Замечаний: 0% ±

XL 2010
[vba]
Код
    ActiveSheet.Range(Cells(2, 13), Cells(Rows.Count, Cells(2, 13).Column).End(xlUp)).RemoveDuplicates Columns:=1, Header:=xlNo 'Cells(Rows.Count, 1).End(xlUp).Row
    ActiveSheet.Range(Cells(2, 13), Cells(Rows.Count, Cells(2, 13).Column).End(xlUp)).Copy  ' Cut       '<<< ИЗМЕНИЛ!
    Range("Таблица2[1]").Select
    
    ActiveSheet.Paste
    ActiveSheet.Range(Cells(2, 13), Cells(Rows.Count, Cells(2, 13).Column).End(xlUp)).ClearContents     '<<< ДОБАВИЛ!
[/vba]

формулы убились не из-за очистки, а из-за наката вырезанием на диапазон
 
Ответить
Сообщение[vba]
Код
    ActiveSheet.Range(Cells(2, 13), Cells(Rows.Count, Cells(2, 13).Column).End(xlUp)).RemoveDuplicates Columns:=1, Header:=xlNo 'Cells(Rows.Count, 1).End(xlUp).Row
    ActiveSheet.Range(Cells(2, 13), Cells(Rows.Count, Cells(2, 13).Column).End(xlUp)).Copy  ' Cut       '<<< ИЗМЕНИЛ!
    Range("Таблица2[1]").Select
    
    ActiveSheet.Paste
    ActiveSheet.Range(Cells(2, 13), Cells(Rows.Count, Cells(2, 13).Column).End(xlUp)).ClearContents     '<<< ДОБАВИЛ!
[/vba]

формулы убились не из-за очистки, а из-за наката вырезанием на диапазон

Автор - Саня
Дата добавления - 08.07.2016 в 14:33
krosav4ig Дата: Пятница, 08.07.2016, 14:36 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1356
Репутация: 547 ±
Замечаний: 0% ±

Excel 2007, 2013
а я пишу [vba]
Код
ActiveSheet.ListObjects(1).DataBodyRange.Clear
[/vba] и у мну ничего не слетает

UPD.
[vba]
Код
Sub Макрос1()
    Application.ScreenUpdating = 0
        With ActiveSheet.ListObjects(1)
            If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
            [1!O1:O33].AdvancedFilter xlFilterCopy, , [1!M1], True
            [1!M:M].SpecialCells(2, 23).Copy
            .HeaderRowRange(1, 1).PasteSpecial xlPasteValues
            [1!M:M].Clear
        End With
    Application.ScreenUpdating = True
End Sub
[/vba]


(_)Õvõ(_)

Сообщение отредактировал krosav4ig - Пятница, 08.07.2016, 15:01
 
Ответить
Сообщениеа я пишу [vba]
Код
ActiveSheet.ListObjects(1).DataBodyRange.Clear
[/vba] и у мну ничего не слетает

UPD.
[vba]
Код
Sub Макрос1()
    Application.ScreenUpdating = 0
        With ActiveSheet.ListObjects(1)
            If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
            [1!O1:O33].AdvancedFilter xlFilterCopy, , [1!M1], True
            [1!M:M].SpecialCells(2, 23).Copy
            .HeaderRowRange(1, 1).PasteSpecial xlPasteValues
            [1!M:M].Clear
        End With
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 08.07.2016 в 14:36
Sancho Дата: Пятница, 08.07.2016, 20:39 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 0% ±

2007, 2010, 2013
формулы убились не из-за очистки, а из-за наката вырезанием на диапазон

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


Сообщение отредактировал Sancho - Пятница, 08.07.2016, 20:40
 
Ответить
Сообщение
формулы убились не из-за очистки, а из-за наката вырезанием на диапазон

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

Автор - Sancho
Дата добавления - 08.07.2016 в 20:39
Мир MS Excel » Вопросы и решения » Вопросы по VBA » При очистке "умной таблицы"макросом слетают формулы (Макросы/Sub)
Страница 1 из 11
Поиск:

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