powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не работает метод Copy (Worksheets), но всё очень странно.
19 сообщений из 44, страница 2 из 2
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692453
Andrey.Russe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я понял о чём Вы!!! И вправду не понял смысла 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.
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 Target = Workbooks(ClientName).Worksheets(SheetCfg)
        'открываем файл
        Set Source = Workbooks.Open(MacroPath, , True, , "111")
        Set SourceL = Source.Worksheets(SheetName)
        'Копирование листа из книги макроса в книгу клиента
        SourceL.Copy Before:=Target
        'закрываем защищенную книгу
        Application.DisplayAlerts = False
        Source.Close
        Application.DisplayAlerts = True
    End If
    
End Function
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692460
Andrey.Russe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProAndrey.RusseНо при работе я увидел, что он не копирует этот лист четко в цель, а создает новый лист и лупит в него.стоп-стоп, что значит "четко в цель"? Вы вообще справку по команде Copy читали? или все методом тыка исследуете?

Andrey.RusseЕсть книга защищенная (Source) от пользователей.
Есть книга пользователя (Target).А макрос, который вы привели где находится? в третьей книге? Я не могу понять, что вы тут делаете - создаете лист в одной книге, потом открываете другую книгу и из нее копируете лист в третью книгу, так?


Код улучшил, но проблема осталась.

Итак есть защищенная книга macro2014, которая содержит в себе необходимые шаблоны.
Есть книга клиента client.

пользователь щелкает необходимую кнопку в client2 и макрос копируем ему необходимые листы из macro

в этой функции копируется лист с некоторым именем, пусть Client.
проверяется, что в книге client такого листа нет, тогда можно копировать.
открывается книга macro2014
и этот лист копируется в книгу client
книга macro2014 закрывается.
всё.
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692471
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фиг знает, очень тяжело и долго заниматься пошаговой отладкой по телеграфу...

попробуйте снять пароль с исходного файла и открывать его не только для чтения

попробуйте проделать копирование листа "руками" (правой кнопкой на ярлычок листа)
если пройдет - попробуйте включить запись макроса и проделать это копирование
попробуйте воспроизвести макрос
если работает - начните переделывать работающий макрос под свои нужды, постоянно пробуя до тех пор, пока не перестанет работать
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692488
Andrey.Russe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692494
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey.Russe,

У меня последняя догадка осталась по Вашей ошибке: дело в том, что для книги кол-во листов ограничивается доступной памятью ПК. Если памяти не хватает - получите ошибку. Это может быть на 10-м листе, а может быть на 100-м. Зависит от совокупного объема данных на листах.
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692500
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
макрос.... макрос....
а если попробовать копировать лист без макросов (при прочих равных)?
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692524
Andrey.Russe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_PristAndrey.Russe,

У меня последняя догадка осталась по Вашей ошибке: дело в том, что для книги кол-во листов ограничивается доступной памятью ПК. Если памяти не хватает - получите ошибку. Это может быть на 10-м листе, а может быть на 100-м. Зависит от совокупного объема данных на листах.


не копируется даже первый лист, в котором несколько строчек текста.
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692526
Andrey.Russe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proмакрос.... макрос....
а если попробовать копировать лист без макросов (при прочих равных)?

пробовал, работает.
но когда выяснил, что макросы, которые сидят в листе не копируются - бросил эту затею.

но тут я пользовался функциями типа.

SheetSource.Select
SheetSource.Copy
SheetTarget.Select
SheetTarget.Paste


Но согласитесь, когда программа работает на 20 компьютерах и не работает на 1ном, то проблема в этом компьютере.

но пока чистка рееста, отключение firewall, переинсталяция офиса не помогла.
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692528
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proмакрос.... макрос....
а если попробовать копировать лист без макросов (при прочих равных)?Еще одна мысль... можно ли в контексте задачи попробовать для тестов не использовать уже открытую книгу для вставки, а открыть ее самостоятельно с диска?
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692536
Andrey.Russe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProShocker.Proмакрос.... макрос....
а если попробовать копировать лист без макросов (при прочих равных)?Еще одна мысль... можно ли в контексте задачи попробовать для тестов не использовать уже открытую книгу для вставки, а открыть ее самостоятельно с диска?

попробовал три варианта:

1) Как Вы посоветовали: копировать лист в открытой вручную книги в рабочую книгу.

2) копировать лист внутри рабочей книги

3) копировать лист внутри открываемой с диска книги

все три варианта выдают одну и ту же ошибку. Run-time error 1004
Method Copy of object _Worksheet failed.
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692543
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте пересохранить на клиентской машине файл с макросами

попробуйте пересохранить его в формате xls
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692552
Andrey.Russe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proпопробуйте пересохранить на клиентской машине файл с макросами

попробуйте пересохранить его в формате xls

в xls все макросы потеряются - этот формат их не поддерживает.
а пересохранение конечно же делал - надо же путь к главному файлу макросов изменить.

обнаружил, что машина давно не делала update - делаю. может поможет.
почти 800Мб качается.

еще заказчик сказал, что машина была с вирусами и антивирус много чего там почистил и были проблемы разные во всяких программах.

пробовал вообще маленькую тестовую программку просто с одного листа сделать Copy на другой лист внутри книги.
НЕ РАБОТАЕТ!!!
пробовал Move метод - та же ошибка.

на моей машине всё работает.
походу тут винду надо переустанавливать.
но как объяснить это заказчику - не знаю.
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692554
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey.Russeв xls все макросы потеряются - этот формат их не поддерживает.вот это новость!

Andrey.Russeпробовал вообще маленькую тестовую программку просто с одного листа сделать Copy на другой лист внутри книги.
НЕ РАБОТАЕТ!!!вы меня убедили, что проблема в компе
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692555
Andrey.Russe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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

тоже завтра попробую.
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692559
Andrey.Russe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProAndrey.Russeв xls все макросы потеряются - этот формат их не поддерживает.вот это новость!

Andrey.Russeпробовал вообще маленькую тестовую программку просто с одного листа сделать Copy на другой лист внутри книги.
НЕ РАБОТАЕТ!!!вы меня убедили, что проблема в компе


Вот такая тестовая программка:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Public Const SheetCfg As String = "cfg"

Sub Test()

    Dim Target As Excel.Worksheet
    Dim Source As Excel.Worksheet
    
    ClientName = ActiveWorkbook.Name
    'куда копировать
    Set Target = Workbooks(ClientName).Worksheets(SheetCfg)
    'откуда копировать
    Set Source = Workbooks(ClientName).Worksheets(SheetCfg)
    'Копирование листа
    Source.Copy Before:=Target
    
End Sub



И как всегда. у меня работает, там нет. Ошибка та же в Copy методе - 1004 Run-Error
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38692828
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey.Russe,

Кстати, не пробовали давать переменным другие имена? Source и Target - зарезервированы. Мало ли именно на том ПК это стало проблемой? Добавьте к ним хотя бы префикс небольшой(типа ws). Кто знает, вдруг поможет...
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38693030
Andrey.Russe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_PristAndrey.Russe,

Кстати, не пробовали давать переменным другие имена? Source и Target - зарезервированы. Мало ли именно на том ПК это стало проблемой? Добавьте к ним хотя бы префикс небольшой(типа ws). Кто знает, вдруг поможет...

попробовал на всякий случай - не помогло.

сделал все updates на этом компе.
всё равно - метод не работает (Сейчас я говорю уже про простой код функции Test() )

пока в тупике
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38695734
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey.Russe,

пришлите мне Ваш макрос на листе (или тест)
который не хочет копироваться

попробую на многих разных компах и версиях windows - excel
заинтриговало

надо докопаться

kosinec@metalurgs.lv
...
Рейтинг: 0 / 0
Не работает метод Copy (Worksheets), но всё очень странно.
    #38696225
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey.Russeпробовал вообще маленькую тестовую программку просто с одного листа сделать Copy на другой лист внутри книги.
НЕ РАБОТАЕТ!!!
пробовал Move метод - та же ошибка.

А просто руками копирование\перемещение листов работает???
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не работает метод Copy (Worksheets), но всё очень странно.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]