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

Вход

Регистрация

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

 

= Мир MS Excel/pasteSpecial из worksheet завершен неверно (Excel 2016) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
pasteSpecial из worksheet завершен неверно (Excel 2016)
Shurakm Дата: Среда, 04.10.2017, 15:46 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте!
Есть кусок кода vba, который прекрасно работал с 2003 по 2010 Excel
А вот для Excel2016 (windows 10) на тех же файлах выдает ошибку:
Метод pasteSpecial из класса worksheet завершен неверно

[vba]
Код
Sub CopySheetFormules(fromSheet As Worksheet, toSheet As Worksheet)
  fromSheet.Activate
  fromSheet.Cells.Copy
  toSheet.Activate
  toSheet.Cells(1, 1).select

  ActiveSheet.PasteSpecial Format:=7, Link:=False, DisplayAsIcon:=False ' здесь падает
  toSheet.Cells(1, 1).select
End Sub
[/vba]

Что тут может быть неверным?

Приложить пример затруднительно - все файлы большие и разные, все прекрасно работали на предыдущих версиях Excel
Тут скорей вопрос про Excel 2016


Сообщение отредактировал Shurakm - Среда, 04.10.2017, 16:21
 
Ответить
СообщениеЗдравствуйте!
Есть кусок кода vba, который прекрасно работал с 2003 по 2010 Excel
А вот для Excel2016 (windows 10) на тех же файлах выдает ошибку:
Метод pasteSpecial из класса worksheet завершен неверно

[vba]
Код
Sub CopySheetFormules(fromSheet As Worksheet, toSheet As Worksheet)
  fromSheet.Activate
  fromSheet.Cells.Copy
  toSheet.Activate
  toSheet.Cells(1, 1).select

  ActiveSheet.PasteSpecial Format:=7, Link:=False, DisplayAsIcon:=False ' здесь падает
  toSheet.Cells(1, 1).select
End Sub
[/vba]

Что тут может быть неверным?

Приложить пример затруднительно - все файлы большие и разные, все прекрасно работали на предыдущих версиях Excel
Тут скорей вопрос про Excel 2016

Автор - Shurakm
Дата добавления - 04.10.2017 в 15:46
KuklP Дата: Среда, 04.10.2017, 18:14 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Чепуха какая-то. Вы с листа на лист копируете ВСЕ ячейки каким-то инвалидным способом:
[vba]
Код
PasteSpecial Format:=7, Link:=False, DisplayAsIcon:=False
[/vba]Зачем? Откуда и что Вы таким кодом копируете?


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЧепуха какая-то. Вы с листа на лист копируете ВСЕ ячейки каким-то инвалидным способом:
[vba]
Код
PasteSpecial Format:=7, Link:=False, DisplayAsIcon:=False
[/vba]Зачем? Откуда и что Вы таким кодом копируете?

Автор - KuklP
Дата добавления - 04.10.2017 в 18:14
Shurakm Дата: Среда, 04.10.2017, 18:40 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Сорри за сумбур...
Я в vba даже не любитель. Код не мой и очень древний.

Берется шаблон из БД (Excel 2007), копируются листы из него в новую книгу (Excel 2016).
[vba]
Код
fromBook.Sheets(arr).Copy after:=toBook.Sheets(toBook.Sheets.count)
[/vba]

А потом вот эта странная функция (CopySheetFormules) для каждого листа должна по идее отдельно скопировать формулы (присутствует коммент типа - "а то при копировании есть ограничение 255 символов")
Может старое ограничение, может еще что
Вот вроде параметр Format:=7 - это xlAllExceptBorders, а совсем не формулы как указано
 
Ответить
СообщениеСорри за сумбур...
Я в vba даже не любитель. Код не мой и очень древний.

Берется шаблон из БД (Excel 2007), копируются листы из него в новую книгу (Excel 2016).
[vba]
Код
fromBook.Sheets(arr).Copy after:=toBook.Sheets(toBook.Sheets.count)
[/vba]

А потом вот эта странная функция (CopySheetFormules) для каждого листа должна по идее отдельно скопировать формулы (присутствует коммент типа - "а то при копировании есть ограничение 255 символов")
Может старое ограничение, может еще что
Вот вроде параметр Format:=7 - это xlAllExceptBorders, а совсем не формулы как указано

Автор - Shurakm
Дата добавления - 04.10.2017 в 18:40
KuklP Дата: Среда, 04.10.2017, 18:48 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
А вот нифига!
xlAllExceptBorders это не параметр Format, это параметр paste:
Цитата
Range.PasteSpecial Method
Pastes a Range from the Clipboard into the specified range.
Syntax
expression.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
expression A variable that represents a Range object.
Parameters
Name Required/Optional Data Type Description
Paste Optional XlPasteType . The part of the range to be pasted.
Поэтому вместо Вашей помойки:
[vba]
Код
Sub CopySheetFormules(fromSheet As Worksheet, toSheet As Worksheet)
    fromSheet.UsedRange.Copy
    toSheet.Cells(1, 1).PasteSpecial xlPasteFormulas
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Среда, 04.10.2017, 18:49
 
Ответить
СообщениеА вот нифига!
xlAllExceptBorders это не параметр Format, это параметр paste:
Цитата
Range.PasteSpecial Method
Pastes a Range from the Clipboard into the specified range.
Syntax
expression.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
expression A variable that represents a Range object.
Parameters
Name Required/Optional Data Type Description
Paste Optional XlPasteType . The part of the range to be pasted.
Поэтому вместо Вашей помойки:
[vba]
Код
Sub CopySheetFormules(fromSheet As Worksheet, toSheet As Worksheet)
    fromSheet.UsedRange.Copy
    toSheet.Cells(1, 1).PasteSpecial xlPasteFormulas
End Sub
[/vba]

Автор - KuklP
Дата добавления - 04.10.2017 в 18:48
Shurakm Дата: Среда, 04.10.2017, 18:51 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Выкинул в паре шаблонов указанный блок с дополнительным копирование как бы длинных формул - все заработало
Но.. этих шаблонов много и возможно в каком-то из них есть эти пресловутые длинные формулы
Т.е. теоретически задачу можно свести к переделыванию всех шаблонов (выкинуть этот блок) и тщательной проверке результата
Однако это немаленькая задача :)
 
Ответить
СообщениеВыкинул в паре шаблонов указанный блок с дополнительным копирование как бы длинных формул - все заработало
Но.. этих шаблонов много и возможно в каком-то из них есть эти пресловутые длинные формулы
Т.е. теоретически задачу можно свести к переделыванию всех шаблонов (выкинуть этот блок) и тщательной проверке результата
Однако это немаленькая задача :)

Автор - Shurakm
Дата добавления - 04.10.2017 в 18:51
Shurakm Дата: Среда, 04.10.2017, 18:56 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Поэтому вместо Вашей помойки:

[vba]
Код
Sub CopySheetFormules(fromSheet As Worksheet, toSheet As Worksheet)
    fromSheet.UsedRange.Copy
    toSheet.Cells(1, 1).PasteSpecial xlPasteFormulas
End Sub
[/vba]


Попробовал... Теперь ошибка "Метод pasteSpecial из класса Range завершен неверно"
 
Ответить
Сообщение
Поэтому вместо Вашей помойки:

[vba]
Код
Sub CopySheetFormules(fromSheet As Worksheet, toSheet As Worksheet)
    fromSheet.UsedRange.Copy
    toSheet.Cells(1, 1).PasteSpecial xlPasteFormulas
End Sub
[/vba]


Попробовал... Теперь ошибка "Метод pasteSpecial из класса Range завершен неверно"

Автор - Shurakm
Дата добавления - 04.10.2017 в 18:56
KuklP Дата: Среда, 04.10.2017, 19:03 | Сообщение № 7
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Было:
на тех же файлах выдает ошибку:
Метод pasteSpecial из класса worksheet завершен неверно

Стало:
Теперь ошибка "Метод pasteSpecial из класса Range завершен неверно"
:D Как минимум ничего не потеряли. Тогда надо видеть файлы. только не
все файлы большие и разные
а пара НЕБОЛЬШИХ для примера, где длина формулы >255.
И еще - объединенные ячейки тоже могут вызывать такую ошибку.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Среда, 04.10.2017, 19:06
 
Ответить
СообщениеБыло:
на тех же файлах выдает ошибку:
Метод pasteSpecial из класса worksheet завершен неверно

Стало:
Теперь ошибка "Метод pasteSpecial из класса Range завершен неверно"
:D Как минимум ничего не потеряли. Тогда надо видеть файлы. только не
все файлы большие и разные
а пара НЕБОЛЬШИХ для примера, где длина формулы >255.
И еще - объединенные ячейки тоже могут вызывать такую ошибку.

Автор - KuklP
Дата добавления - 04.10.2017 в 19:03
KuklP Дата: Среда, 04.10.2017, 19:35 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Но вообще-то чепуха. Как правило не делаю примеров за ТС, но.. В F1 длина формулы 1542 знака, что по мне так запредельный изврат. Но все копируется и как формулы и как просто копирование:
[vba]
Код
Public Sub www()
    [a1].CurrentRegion.Copy
    [Лист2!a1].PasteSpecial xlPasteFormulas
End Sub
Public Sub www1()
    [a1].CurrentRegion.Copy [Лист2!a1]
End Sub
[/vba]
К сообщению приложен файл: 1111.xlsm (17.8 Kb)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Среда, 04.10.2017, 19:36
 
Ответить
СообщениеНо вообще-то чепуха. Как правило не делаю примеров за ТС, но.. В F1 длина формулы 1542 знака, что по мне так запредельный изврат. Но все копируется и как формулы и как просто копирование:
[vba]
Код
Public Sub www()
    [a1].CurrentRegion.Copy
    [Лист2!a1].PasteSpecial xlPasteFormulas
End Sub
Public Sub www1()
    [a1].CurrentRegion.Copy [Лист2!a1]
End Sub
[/vba]

Автор - KuklP
Дата добавления - 04.10.2017 в 19:35
Shurakm Дата: Четверг, 05.10.2017, 11:18 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо за помощь
На самом деле что-то непонятное и главное не могу выявить смысл этого куска кода (отчеты монструозные)

МСДН утверждает, что Format:=7 не бывает (https://msdn.microsoft.com/VBA....d-excel)
Только от 0 до 5

А в другом месте ([url=https://msdn.microsoft.com/ru-ru/library/microsoft.office.tools.excel.worksheet.pastespecial(v=vs.120).aspx]msdn[/url]) предлагает вводить текстовый параметр
Если вы не знаете, какую строку передавать параметру Format, можно просмотреть строки, которые совместимы с данными в буфере обмена, попытавшись выполнить команду вставки в Excel. Скопируйте данные в буфер обмена, воспользуйтесь командой Специальная вставка в Excel, а затем просмотрите форматы, перечисленные в диалоговом окне Специальная вставка.

За неимением времени попробую отрубить этот кусок кода и подождать где вылезет
 
Ответить
СообщениеСпасибо за помощь
На самом деле что-то непонятное и главное не могу выявить смысл этого куска кода (отчеты монструозные)

МСДН утверждает, что Format:=7 не бывает (https://msdn.microsoft.com/VBA....d-excel)
Только от 0 до 5

А в другом месте ([url=https://msdn.microsoft.com/ru-ru/library/microsoft.office.tools.excel.worksheet.pastespecial(v=vs.120).aspx]msdn[/url]) предлагает вводить текстовый параметр
Если вы не знаете, какую строку передавать параметру Format, можно просмотреть строки, которые совместимы с данными в буфере обмена, попытавшись выполнить команду вставки в Excel. Скопируйте данные в буфер обмена, воспользуйтесь командой Специальная вставка в Excel, а затем просмотрите форматы, перечисленные в диалоговом окне Специальная вставка.

За неимением времени попробую отрубить этот кусок кода и подождать где вылезет

Автор - Shurakm
Дата добавления - 05.10.2017 в 11:18
KuklP Дата: Четверг, 05.10.2017, 14:03 | Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Shurakm, еще раз - Вы слышали звон, не зная где он. Параметр format применяется при копировании например, из ворда, Ишака и т.д. Из внешних приложений. При копировании с листа на лист Экса применяют ВСЕ другие параметры. Я Вам в №4 привел справку - какие. Не надо превращать тему в пустопорожний треп, Вам ведь решение надо?


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеShurakm, еще раз - Вы слышали звон, не зная где он. Параметр format применяется при копировании например, из ворда, Ишака и т.д. Из внешних приложений. При копировании с листа на лист Экса применяют ВСЕ другие параметры. Я Вам в №4 привел справку - какие. Не надо превращать тему в пустопорожний треп, Вам ведь решение надо?

Автор - KuklP
Дата добавления - 05.10.2017 в 14:03
  • Страница 1 из 1
  • 1
Поиск:

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