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

Вход

Регистрация

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

 

= Мир MS Excel/Преобразовать все данные на листе в значения - Мир MS Excel

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

Excel 2010
Есть таблица с кучей вычислений и формул, созданная для получения итогового результата-предложения для клиента в виде единственого числового значения.
Вручную итоговую табличку получаем вот таким способом:
-выделяется весь лист разом
- делаем копирование (alt+c)
- вставляем назад только цифры (alt+v)
- правой клавишей мышки выбираем режим "параметры вставки "значения" и вставляем
- выделяем все лишние столбцы и удалем.
Решил автоматизировать процесс и рекордером записал вот такой макрос:

[vba]
Код
Cells.Select
Selection.Copy
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("E:AU").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("H:J").Select
Selection.Delete Shift:=xlToLeft
End Sub
[/vba]

При выполнении макрос ругается:
"run time eror "1004":
метод Paste из класса Worksheet завершен неверно"

Чего ему не нравится то и где ошибка?!
Я если честно в этом пока ничего не понимаю, поэтому прошу местных спецов подсказать как решить эту проблему.


Сообщение отредактировал Manyasha - Воскресенье, 10.07.2016, 16:26
 
Ответить
СообщениеЕсть таблица с кучей вычислений и формул, созданная для получения итогового результата-предложения для клиента в виде единственого числового значения.
Вручную итоговую табличку получаем вот таким способом:
-выделяется весь лист разом
- делаем копирование (alt+c)
- вставляем назад только цифры (alt+v)
- правой клавишей мышки выбираем режим "параметры вставки "значения" и вставляем
- выделяем все лишние столбцы и удалем.
Решил автоматизировать процесс и рекордером записал вот такой макрос:

[vba]
Код
Cells.Select
Selection.Copy
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("E:AU").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("H:J").Select
Selection.Delete Shift:=xlToLeft
End Sub
[/vba]

При выполнении макрос ругается:
"run time eror "1004":
метод Paste из класса Worksheet завершен неверно"

Чего ему не нравится то и где ошибка?!
Я если честно в этом пока ничего не понимаю, поэтому прошу местных спецов подсказать как решить эту проблему.

Автор - Serge1400
Дата добавления - 10.07.2016 в 15:28
Manyasha Дата: Воскресенье, 10.07.2016, 16:51 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1721
Репутация: 722 ±
Замечаний: 0% ±

Excel 2007, 2010
Serge1400, вот так пойдет?
[vba]
Код
Sub n()
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
    Columns("E:AU").Delete Shift:=xlToLeft
    Columns("H:J").Delete Shift:=xlToLeft
End Sub
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеSerge1400, вот так пойдет?
[vba]
Код
Sub n()
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
    Columns("E:AU").Delete Shift:=xlToLeft
    Columns("H:J").Delete Shift:=xlToLeft
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 10.07.2016 в 16:51
Serge1400 Дата: Воскресенье, 10.07.2016, 17:27 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Работает!!! Все прямо как надо.
Спасибо!
P.S. А рекодер макросов то наворочал раза в 3 длиннее и нерабочий...
 
Ответить
СообщениеРаботает!!! Все прямо как надо.
Спасибо!
P.S. А рекодер макросов то наворочал раза в 3 длиннее и нерабочий...

Автор - Serge1400
Дата добавления - 10.07.2016 в 17:27
ilikeread Дата: Пятница, 15.07.2016, 15:06 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Я пользуюсь таким вариантом
[vba]
Код

Sub All_F_to_VAL()
Sheets(Sheets.Count).UsedRange.Value = Sheets(Sheets.Count).UsedRange.Value
End Sub
[/vba]
Все формулы на странице переводит в значения
Было найдено на просторах данного форума


Сообщение отредактировал ilikeread - Пятница, 15.07.2016, 15:08
 
Ответить
СообщениеЯ пользуюсь таким вариантом
[vba]
Код

Sub All_F_to_VAL()
Sheets(Sheets.Count).UsedRange.Value = Sheets(Sheets.Count).UsedRange.Value
End Sub
[/vba]
Все формулы на странице переводит в значения
Было найдено на просторах данного форума

Автор - ilikeread
Дата добавления - 15.07.2016 в 15:06
Rioran Дата: Пятница, 15.07.2016, 16:22 | Сообщение № 5
Группа: Авторы
Ранг: Ветеран
Сообщений: 886
Репутация: 283 ±
Замечаний: 0% ±

Excel 2013
ilikeread, здравствуйте.

Приведённый Вами код в целом делает то же самое, что и код Manyasha. Однако работает только с последним листом книги.

[vba]
Код
Sheets.Count ' Подсчёт листов в книге
Sheets(Sheets.Count) ' Обращение к листу с номером "Sheets.Count"
[/vba]


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщениеilikeread, здравствуйте.

Приведённый Вами код в целом делает то же самое, что и код Manyasha. Однако работает только с последним листом книги.

[vba]
Код
Sheets.Count ' Подсчёт листов в книге
Sheets(Sheets.Count) ' Обращение к листу с номером "Sheets.Count"
[/vba]

Автор - Rioran
Дата добавления - 15.07.2016 в 16:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Преобразовать все данные на листе в значения (Макросы/Sub)
Страница 1 из 11
Поиск:

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