Преобразовать все данные на листе в значения
Serge1400
Дата: Воскресенье, 10.07.2016, 15:28 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 103
Репутация:
0
±
Замечаний:
0% ±
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 завершен неверно" Чего ему не нравится то и где ошибка?! Я если честно в этом пока ничего не понимаю, поэтому прошу местных спецов подсказать как решить эту проблему.
Есть таблица с кучей вычислений и формул, созданная для получения итогового результата-предложения для клиента в виде единственого числового значения. Вручную итоговую табличку получаем вот таким способом: -выделяется весь лист разом - делаем копирование (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
Сообщение отредактировал 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
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация:
901
±
Замечаний:
0% ±
Excel 2010, 2016
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]
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
ЯД: 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
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 103
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Работает!!! Все прямо как надо. Спасибо! P.S. А рекодер макросов то наворочал раза в 3 длиннее и нерабочий...
Работает!!! Все прямо как надо. Спасибо! P.S. А рекодер макросов то наворочал раза в 3 длиннее и нерабочий... Serge1400
Ответить
Сообщение Работает!!! Все прямо как надо. Спасибо! 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] Все формулы на странице переводит в значения Было найдено на просторах данного форума
Я пользуюсь таким вариантом [vba]Код
Sub All_F_to_VAL() Sheets(Sheets.Count).UsedRange.Value = Sheets(Sheets.Count).UsedRange.Value End Sub
[/vba] Все формулы на странице переводит в значения Было найдено на просторах данного форума ilikeread
Сообщение отредактировал 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
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация:
290
±
Замечаний:
0% ±
Excel 2013
ilikeread , здравствуйте. Приведённый Вами код в целом делает то же самое, что и код Manyasha . Однако работает только с последним листом книги. [vba]Код
Sheets.Count ' Подсчёт листов в книге Sheets(Sheets.Count) ' Обращение к листу с номером "Sheets.Count"
[/vba]
ilikeread , здравствуйте. Приведённый Вами код в целом делает то же самое, что и код Manyasha . Однако работает только с последним листом книги. [vba]Код
Sheets.Count ' Подсчёт листов в книге Sheets(Sheets.Count) ' Обращение к листу с номером "Sheets.Count"
[/vba]Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Ответить
Сообщение ilikeread , здравствуйте. Приведённый Вами код в целом делает то же самое, что и код Manyasha . Однако работает только с последним листом книги. [vba]Код
Sheets.Count ' Подсчёт листов в книге Sheets(Sheets.Count) ' Обращение к листу с номером "Sheets.Count"
[/vba]Автор - Rioran Дата добавления - 15.07.2016 в 16:22