|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Написал программу в Ексель 2007. Проверил работает. Выяснилось позже, что программа будет работать на Ексель 2010. Поставил у себя Ексель 2010 (т.е. на компьютере 2010 и 2007 Ексель), проверил - работает. Поставил на другой чистый компьютер Ексель 2010 (т.е. тут только Ексель 2010 и больше ничего) - проверил работает. Привез программу к заказчику - не работает. единственная разница - у меня русский Виндоус 8, у него немецкий Windows 7 ошибки идут просто ужасно странные, например: Public Function IsFilePresent(FullPathName As String) As Boolean If Dir(FullPathName) <> "" Then тут ошибка говорит, что Bad file name на "E:\macro\macro_2014.xlsm" и вызывает Debug опытным путем установил, что именно комбинация E: (такого диска нет) вызывает ошибку, остальное без проблем. на верный путь "C:\macro\macro_2014.xlsm" отрабатывает нормально и на неверный путь (такого диска нет) "F:\macro\macro_2014.xlsm" отрабатывает нормально - выдает моё сообщение о неверном пути. Но это же стринг. какая ему разница какие буквы внутри? ок, пока поставил верный путь и пошли дальше..... потом эта часть кода (мне необходимо из одной книги в другую скопировать полностью лист, включая все свойства и макросы листа): Dim Source As Excel.Workbook Dim Target As Excel.Worksheet Dim SourceL As Excel.Worksheet Set Source = Workbooks.Open(MacroPath, , True, , "111") Set SourceL = Source.Worksheets(SheetName) SourceL.Copy After:=Target ОШИБКА ТУТ говорит - Run time error 1004 method copy of object _worksheet failed проверяю синтаксис, проверяю параметры - всё отлично. согласно всем интернет ресурсам синтаксис верный и других вариантов нет. Как тут переписать - не знаю. тем более на моих двух ПК всё работает. Что было сделано для поиска проблемы: 1) отрубил антивирус 2) поставил одинаковый Ексель 2010 3) убрал кириллицу из программы - только английский язык 4) запустил у него Ексель с правами администратора идей больше нет, а программа не работает. Буду рад помощи. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 03:26 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Проверил набор библиотек - всё одинаково на моём и компьютере заказчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 03:41 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Andrey.RusseIf Dir(FullPathName) <> "" Then тут ошибка говорит, что Bad file name на "E:\macro\macro_2014.xlsm" и вызывает Debugкакой еще debug? любые файловые операции должны сопровождаться перехватом исключений, это же не для себя программа, а на выпуск. откуда на машине заказчика оказался ваш путь? либо относительный путь надо использовать, либо настройка, либо давать выбор пользователю, но не так же. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
я не нашел тут инициализацию Target, и в чем вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 09:04 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Andrey.Russe, 1. Правильнее так: If Dir(FullPathName, 16) <> "" Then. Не факт, что в Вашем случае избавит от ошибки, конечно. Если верить Вашему описанию. 2. Синтаксис, может и правильный, но может стоит справку почитать? Там явно указывается, что аргумент After - это существующий лист в книге, после которого будет вставлен скопированный лист. А у Вас этот аргумент равен Nothing, т.к. Вы его лишь объявили, но не присвоили никакого значения. Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 12:15 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Shocker.ProAndrey.RusseIf Dir(FullPathName) <> "" Then тут ошибка говорит, что Bad file name на "E:\macro\macro_2014.xlsm" и вызывает Debugкакой еще debug? любые файловые операции должны сопровождаться перехватом исключений, это же не для себя программа, а на выпуск. откуда на машине заказчика оказался ваш путь? либо относительный путь надо использовать, либо настройка, либо давать выбор пользователю, но не так же. мой путь оказался для тестирования - заранее неверный путь. на моей машине когда вводишь неверный путь сообщается - неверный путь, там тоже так же происходит во всех случаях кроме одного случая, в случае диска Е: - вызывается дебаггер. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
я не нашел тут инициализацию Target, и в чем вопрос? стер нечаянно вместе с лишним. Dim Source As Excel.Workbook Dim Target As Excel.Worksheet Dim SourceL As Excel.Worksheet Set Target = Workbooks(ClientName).Worksheets(SheetName) Set Source = Workbooks.Open(MacroPath, , True, , "111") Set SourceL = Source.Worksheets(SheetName) 'Копирование листа Клиент из книги макроса в книгу Клиента SourceL.Copy After:=Target ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 12:41 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
The_PristAndrey.Russe, 1. Правильнее так: If Dir(FullPathName, 16) <> "" Then. Не факт, что в Вашем случае избавит от ошибки, конечно. Если верить Вашему описанию. 2. Синтаксис, может и правильный, но может стоит справку почитать? Там явно указывается, что аргумент After - это существующий лист в книге, после которого будет вставлен скопированный лист. А у Вас этот аргумент равен Nothing, т.к. Вы его лишь объявили, но не присвоили никакого значения. Код: vbnet 1.
Это я уже игрался. И Before и After являются необязательными аргументами. пробовал оба аргумента - результат один - у меня работает, у них не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 12:43 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Гм, попробуйте почитать этот топик , там с похожей проблемой боролись ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 12:48 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Shocker.ProГм, попробуйте почитать этот топик , там с похожей проблемой боролись Это уже читал. Там проблемы с буфером. :( А у меня копируется один лист с 5тью строчками. не мой случай. У него копируется, копируется, а потом ломается. А у меня при первом обращении к методу сразу ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 12:55 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Andrey.Russe, Не пробовали почитать про методы Open? :-) Вы же сами открываете книгу в режиме "Только чтение". Поэтому лист и не копируется. Set Source = Workbooks.Open(MacroPath, , False, , "111") ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 12:59 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
это ж источник, а не приемник... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 13:00 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
The_PristAndrey.Russe, Не пробовали почитать про методы Open? :-) Вы же сами открываете книгу в режиме "Только чтение". Поэтому лист и не копируется. Set Source = Workbooks.Open(MacroPath, , False, , "111") конечно же читал про этот метод. мне важно, чтобы в этом файле источника клиент ничего не портил, потому как там лежат оригиналы всех шаблонов. поэтому открываю в режиме чтения и кидаю ему в рабочий файл методом копирования, при этом там ничего и никогда своим макросом не меняю. но тем не менее даже если предположить, что Вы правы, то не могу ответить на вопрос. Почему у меня работает, а у него не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 13:03 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Andrey.Russe, Что скрывается под ClientName? И под SheetName? Смотрите в чем еще может быть проблема: Т.к. SheetName не меняется, то Вы пытаетесь скопировать в другую книгу лист с тем же именем, что там уже есть. Возможно, Excel автоматом не добавляет постфикс в виде номер к имени листа. Ну и чтобы Вам можно было быстрее помочь лучше видеть не обрывки кодов, а весь код. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 13:52 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Еще вариант: Вы копируете лист из книги формата 2007 Excel в книгу, имеющую формат более ранних версий(2003 и меньше). Т.к. кол-во строк и столбцов в таких листах различается - копирование невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 13:53 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
The_PristAndrey.Russe, Что скрывается под ClientName? И под SheetName? Смотрите в чем еще может быть проблема: Т.к. SheetName не меняется, то Вы пытаетесь скопировать в другую книгу лист с тем же именем, что там уже есть. Возможно, Excel автоматом не добавляет постфикс в виде номер к имени листа. Ну и чтобы Вам можно было быстрее помочь лучше видеть не обрывки кодов, а весь код. Был сегодня в другом месте и на немецкой винде, с немецким офисом - на трех компьютерах пробовал - везде моя программа работает. Итак я получил разрешение и снес Microsoft Office у заказчика. Поставил свой Ексель 2010 - всё равно не работает. Последняя надежда умерла. Ексель запускаю с правами администратора. Идей нет. Считаю проблему надо искать в компьютере, а не в программе. Но тем не менее выкладываю текст функции по копированию листов целиком. SheetName="client" MacroPath="C:\macro\macro_2014.xlsm" ClientName="C:\doc\client2.xlsm" Public Function CopySheet(SheetName As String) As Boolean Dim Source As Excel.Workbook Dim Target As Excel.Worksheet Dim SourceL As Excel.Worksheet 'ïðîâåðèòü íàëè÷èå ëèñòà If IsSheetPresent(SheetName) Then 'ëèñò åñòü CopySheet = True Else CopySheet = False 'ëèñòà íåò - ñîçäàòü íîâûé 'ñîçäàòü ëèñò Set Sh = Sheets.Add Sh.Name = SheetName 'êóäà êîïèðîâàòü Set Target = Workbooks(ClientName).Worksheets(SheetName) 'ñîõðàíÿåì ïîðÿäêîâûé íîìåð ëèñòà IndexTarget = Target.Index 'îòêðûâàåì ôàéë Set Source = Workbooks.Open(MacroPath, , True, , "111") Set SourceL = Source.Worksheets(SheetName) 'Êîïèðîâàíèå ëèñòà Êëèåíò èç êíèãè ìàêðîñà â êíèãó Êëèåíòà SourceL.Copy After:=Target ОШИБКА ЗДЕСЬ '×òîáû íå ïîÿâëÿëèñü ïðåäóïðåæäàþùèå ñîîáùåíèÿ îá óäàëåíèè ëèñòà. Application.DisplayAlerts = False 'óäàëèòü ëèñò Êëèåíò Target.Delete '×òîáû ïîÿâëÿëèñü ïðåäóïðåæäàþùèå ñîîáùåíèÿ òîãäà, 'êîãäà îíè äîëæíû ïîÿâëÿòüñÿ. Application.DisplayAlerts = True 'ïåðåèìåíîâàòü ëèñò Êëèåíò2 â Êëèåíò Worksheets(IndexTarget).Name = SheetName 'çàêðûâàåì êíèãó Application.DisplayAlerts = False Source.Close Application.DisplayAlerts = True End If End Function ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 21:52 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
The_PristЕще вариант: Вы копируете лист из книги формата 2007 Excel в книгу, имеющую формат более ранних версий(2003 и меньше). Т.к. кол-во строк и столбцов в таких листах различается - копирование невозможно. использую везде одинаковую версию и формат - Ексель 2010 Сделал проверку - перед функцией копирования воткнул следующие команды - все отработали без ошибок. ячейки изменились. Target.Activate Target.Select Target.Cells(1, 1) = "URA1" SourceL.Activate SourceL.Select SourceL.Cells(1, 1) = "URA" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:11 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Andrey.Russe, Освойте пожалуйста наконец тэги оформления кода - FAQ . Вы же видите, как вам отвечают, и все равно пытаетесь заставить нас разбирать своё "мелким почерком"... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:17 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:21 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Что-то мне вот эта тема совершенно не нравится: Код: vbnet 1.
К книге обращаются по имени книги, а не по полному ее пути. Кроме того, ее предварительно требуется открыть. То есть я ожидал бы увидеть что-то типа: Код: vbnet 1.
(разумеется с отслеживанием ошибки открытия, но это позже) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:26 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Shocker.ProЧто-то мне вот эта тема совершенно не нравится: Код: vbnet 1.
К книге обращаются по имени книги, а не по полному ее пути. Кроме того, ее предварительно требуется открыть. То есть я ожидал бы увидеть что-то типа: Код: vbnet 1.
(разумеется с отслеживанием ошибки открытия, но это позже) Сейчас проверю по поводу полного пути или попробую как-то поменять на активную книгу. Но Target - это текущая книга, в которой работает клиент - она уже открыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:29 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
если открыта, тогда Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:30 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Вообще, как-то не очень понятна структура кода, то есть макрос в одной книге, клиент работает в другой книге, а копирует в третью книгу? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:31 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Извиняюсь. я дал Вам ложную информацию. Верная: ClientName="client2.xlsm" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:31 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:34 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Идея такая: Есть книга защищенная (Source) от пользователей. Есть книга пользователя (Target). Он щелкает кнопку и макрос открывает Source и копирует в Target. Но при работе я увидел, что он не копирует этот лист четко в цель, а создает новый лист и лупит в него. Поэтому в конце добавил код на удаление листа и переименование созданного листа. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:37 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Andrey.RusseНо при работе я увидел, что он не копирует этот лист четко в цель, а создает новый лист и лупит в него.стоп-стоп, что значит "четко в цель"? Вы вообще справку по команде Copy читали? или все методом тыка исследуете? Andrey.RusseЕсть книга защищенная (Source) от пользователей. Есть книга пользователя (Target).А макрос, который вы привели где находится? в третьей книге? Я не могу понять, что вы тут делаете - создаете лист в одной книге, потом открываете другую книгу и из нее копируете лист в третью книгу, так? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:40 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Я понял о чём Вы!!! И вправду не понял смысла AFTER и BEFORE у меня работает. сейчас проверю на машине заказчика. тут же код поправил: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:50 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Shocker.ProAndrey.RusseНо при работе я увидел, что он не копирует этот лист четко в цель, а создает новый лист и лупит в него.стоп-стоп, что значит "четко в цель"? Вы вообще справку по команде Copy читали? или все методом тыка исследуете? Andrey.RusseЕсть книга защищенная (Source) от пользователей. Есть книга пользователя (Target).А макрос, который вы привели где находится? в третьей книге? Я не могу понять, что вы тут делаете - создаете лист в одной книге, потом открываете другую книгу и из нее копируете лист в третью книгу, так? Код улучшил, но проблема осталась. Итак есть защищенная книга macro2014, которая содержит в себе необходимые шаблоны. Есть книга клиента client. пользователь щелкает необходимую кнопку в client2 и макрос копируем ему необходимые листы из macro в этой функции копируется лист с некоторым именем, пусть Client. проверяется, что в книге client такого листа нет, тогда можно копировать. открывается книга macro2014 и этот лист копируется в книгу client книга macro2014 закрывается. всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 22:59 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
фиг знает, очень тяжело и долго заниматься пошаговой отладкой по телеграфу... попробуйте снять пароль с исходного файла и открывать его не только для чтения попробуйте проделать копирование листа "руками" (правой кнопкой на ярлычок листа) если пройдет - попробуйте включить запись макроса и проделать это копирование попробуйте воспроизвести макрос если работает - начните переделывать работающий макрос под свои нужды, постоянно пробуя до тех пор, пока не перестанет работать ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 23:10 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Shocker.Proфиг знает, очень тяжело и долго заниматься пошаговой отладкой по телеграфу... попробуйте снять пароль с исходного файла и открывать его не только для чтения попробуйте проделать копирование листа "руками" (правой кнопкой на ярлычок листа) если пройдет - попробуйте включить запись макроса и проделать это копирование попробуйте воспроизвести макрос если работает - начните переделывать работающий макрос под свои нужды, постоянно пробуя до тех пор, пока не перестанет работать это уже делал :( когда просто копируешь, не копируется макрос, который стоит за листом. ручной макрос там и у меня создается одинаковый и он работает. я прочитал в интернете, что при таких ошибках может быть проблема в реестре. пробую... Repair Registry Registry is a vital component of your system. Microsoft Office Excel registry entries contain several VBA and Macro settings. Corruption in the Registry causes this issue. Repair your Registry as shown below: Download RegInOut System Utilities. Install and run the program. Under Registry Repair section click the Start button. Scan and repair all errors. Reboot your machine. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 23:26 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Andrey.Russe, У меня последняя догадка осталась по Вашей ошибке: дело в том, что для книги кол-во листов ограничивается доступной памятью ПК. Если памяти не хватает - получите ошибку. Это может быть на 10-м листе, а может быть на 100-м. Зависит от совокупного объема данных на листах. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 23:29 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
макрос.... макрос.... а если попробовать копировать лист без макросов (при прочих равных)? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 23:39 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
The_PristAndrey.Russe, У меня последняя догадка осталась по Вашей ошибке: дело в том, что для книги кол-во листов ограничивается доступной памятью ПК. Если памяти не хватает - получите ошибку. Это может быть на 10-м листе, а может быть на 100-м. Зависит от совокупного объема данных на листах. не копируется даже первый лист, в котором несколько строчек текста. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 00:18 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Shocker.Proмакрос.... макрос.... а если попробовать копировать лист без макросов (при прочих равных)? пробовал, работает. но когда выяснил, что макросы, которые сидят в листе не копируются - бросил эту затею. но тут я пользовался функциями типа. SheetSource.Select SheetSource.Copy SheetTarget.Select SheetTarget.Paste Но согласитесь, когда программа работает на 20 компьютерах и не работает на 1ном, то проблема в этом компьютере. но пока чистка рееста, отключение firewall, переинсталяция офиса не помогла. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 00:22 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Shocker.Proмакрос.... макрос.... а если попробовать копировать лист без макросов (при прочих равных)?Еще одна мысль... можно ли в контексте задачи попробовать для тестов не использовать уже открытую книгу для вставки, а открыть ее самостоятельно с диска? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 00:23 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Shocker.ProShocker.Proмакрос.... макрос.... а если попробовать копировать лист без макросов (при прочих равных)?Еще одна мысль... можно ли в контексте задачи попробовать для тестов не использовать уже открытую книгу для вставки, а открыть ее самостоятельно с диска? попробовал три варианта: 1) Как Вы посоветовали: копировать лист в открытой вручную книги в рабочую книгу. 2) копировать лист внутри рабочей книги 3) копировать лист внутри открываемой с диска книги все три варианта выдают одну и ту же ошибку. Run-time error 1004 Method Copy of object _Worksheet failed. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 00:39 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
попробуйте пересохранить на клиентской машине файл с макросами попробуйте пересохранить его в формате xls ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 00:53 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Shocker.Proпопробуйте пересохранить на клиентской машине файл с макросами попробуйте пересохранить его в формате xls в xls все макросы потеряются - этот формат их не поддерживает. а пересохранение конечно же делал - надо же путь к главному файлу макросов изменить. обнаружил, что машина давно не делала update - делаю. может поможет. почти 800Мб качается. еще заказчик сказал, что машина была с вирусами и антивирус много чего там почистил и были проблемы разные во всяких программах. пробовал вообще маленькую тестовую программку просто с одного листа сделать Copy на другой лист внутри книги. НЕ РАБОТАЕТ!!! пробовал Move метод - та же ошибка. на моей машине всё работает. походу тут винду надо переустанавливать. но как объяснить это заказчику - не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 01:06 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Andrey.Russeв xls все макросы потеряются - этот формат их не поддерживает.вот это новость! Andrey.Russeпробовал вообще маленькую тестовую программку просто с одного листа сделать Copy на другой лист внутри книги. НЕ РАБОТАЕТ!!!вы меня убедили, что проблема в компе ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 01:10 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Shocker.ProAndrey.Russeв xls все макросы потеряются - этот формат их не поддерживает.вот это новость! Andrey.Russeпробовал вообще маленькую тестовую программку просто с одного листа сделать Copy на другой лист внутри книги. НЕ РАБОТАЕТ!!!вы меня убедили, что проблема в компе перепутал с xlsx sorry нашел вот такую тему (попробую): авторThe Runtime 1004 error is a very common computer errors messages that appears on the computer when you try and copy & paste filtered data into a Microsoft Office Excel workbook with the following format: * “Runtime error 1004: Copy method of Range Class Failed.” * “Runtime error 1004: Paste method of worksheet class failed.” The main cause for this error is due to the way in which Microsoft Visual Basic cannot compute certain commands / forms of data when transferring data, that is, you either need to change the data you’re transferring or the method at which you’re transferring the data on your system in order to stop this runtime error from happening again and again. But how? Here is the right place for you! How to fix runtime error 1004? The first step to fixing the runtime error 1004 is to uninstall the Microsoft Works add-in for Office. This often causes conflict with the Office software. This can be done by clicking on Start > Control Panel > Add / Remove Programs, and then locating the “Microsoft Works” add-in. Removing it should stop any further conflict within your system. и нашел вот такую от Microsoft: http://www.r6034runtimeerrorfix.com/runtime-error1004.php тоже завтра попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 01:18 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Shocker.ProAndrey.Russeв xls все макросы потеряются - этот формат их не поддерживает.вот это новость! Andrey.Russeпробовал вообще маленькую тестовую программку просто с одного листа сделать Copy на другой лист внутри книги. НЕ РАБОТАЕТ!!!вы меня убедили, что проблема в компе Вот такая тестовая программка: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
И как всегда. у меня работает, там нет. Ошибка та же в Copy методе - 1004 Run-Error ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 01:28 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Andrey.Russe, Кстати, не пробовали давать переменным другие имена? Source и Target - зарезервированы. Мало ли именно на том ПК это стало проблемой? Добавьте к ним хотя бы префикс небольшой(типа ws). Кто знает, вдруг поможет... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 11:07 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
The_PristAndrey.Russe, Кстати, не пробовали давать переменным другие имена? Source и Target - зарезервированы. Мало ли именно на том ПК это стало проблемой? Добавьте к ним хотя бы префикс небольшой(типа ws). Кто знает, вдруг поможет... попробовал на всякий случай - не помогло. сделал все updates на этом компе. всё равно - метод не работает (Сейчас я говорю уже про простой код функции Test() ) пока в тупике ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 12:47 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Andrey.Russe, пришлите мне Ваш макрос на листе (или тест) который не хочет копироваться попробую на многих разных компах и версиях windows - excel заинтриговало надо докопаться kosinec@metalurgs.lv ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2014, 11:23 |
|
Не работает метод Copy (Worksheets), но всё очень странно.
|
|||
---|---|---|---|
#18+
Andrey.Russeпробовал вообще маленькую тестовую программку просто с одного листа сделать Copy на другой лист внутри книги. НЕ РАБОТАЕТ!!! пробовал Move метод - та же ошибка. А просто руками копирование\перемещение листов работает??? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2014, 19:09 |
|
|
start [/forum/topic.php?all=1&fid=60&tid=2156271]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 267ms |
0 / 0 |