Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Run-time error 1004: Метод Paste из класса Worksheet завершен неверно., Ошибка. Метод Paste из класса Worksheet завершен неверно.
 

Всем привет!
Насобирал из разных источников куски кода, собрал  воедино и вроде на рабочем ПК заработало. Но придя домой столкнулся вот с  такой проблемой:

Run-time error '1004':
Приложению Microsoft Excel не удается вставить данные.

или

Run-time error '1004':
Метод Paste из класса Worksheet завершен неверно

Эти ошибки выскакивают на строке:
.Paste Destination:=Cells(g + 1, 2)

Еще одна ошибка:

Run-time error '1004':
Метод CopyPicture из класса Range завершен неверно

выскакивает на строке:
Worksheets("QR-code").M_QRCode

Ошибки выпадают рандомно, как по количеству, так и на этапах выполнения.
Через  несколько часов попыток выяснить в чем причина, алгоритм вдруг начал  работать без ошибок. Но после перезагрузки ПК проблемы возобновились   .

Вкратце о смысле "проекта".
На странице "AllPages" вычленяем номер накладной "№ ___" и код "Код: ___".
На странице "Отгрузка  со склада" по номеру накладной находим номер маршрутного листа.
По номеру маршрутного листа собираем накладные, входящие в него, и размещаем на отдельном листе.
На этом же листе напротив каждой записи вставляем QR-код, полученный на странице "QR-code".

Старт производится с "ВетСвид()".


И еще одно небольшое дополнение: при сбросе сообщения об ошибке можно продолжать выполнение алгоритма в плоть до его логического окончания.

Заранее благодарю всех кто откликнется.
Изменено: Izobilie Logic - 23.11.2024 01:35:47
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
Я не совсем разбираюсь в терминологии соцсетей, но "бот" это не "блог", в котором каждый, зайдя на него, может увидеть все, что я там выкладываю.
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
Мне кажется, что это не совсем так.
Давайте я расскажу алгоритм рассылки, во всяком случае, как он проистекает у меня.
Что бы оформить рассылку конкретному человеку я прошу его выслать мне какое либо сообщение на основании которого я, через бот "Get My Id",  узнаю его ID, проще говоря набор циферок олицетворяющих его адрес в "Телеграм". Затем я прошу адресата зайти на созданный мною бот и зарегистрироваться там, нажав, если я не ошибаюсь, кнопку "Start". После чего адресат начинает в этом боте получать сообщение высланные на его адрес. Если я не хочу, чтобы адресат получал мои сообщения, я удаляю его ID из списка получателей и он более не получает (новые) сообщения в моем боте. Ну, и если получатель сам захочет все это прекратить он просто удаляет у себя мой бот.
Подводим итог: без подписки (регистрации), а главное без моего согласия, адресат не получит от меня сообщения.
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
Я далеко не профессионал в области VBA, но все же хочу спросить: comment.imho, Вы хотите, что рассылка осуществлялась не по адресам, Вами указанным, а всем кто подписался на ваш бот? То бишь, сообщение будут получать все кто захочет и что бы Вы это не контролировали?
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
Игорь Федорович спасибо!
Но остается небольшой вопрос, если это просто строка разделитель, зачем некоторые так изгаляются и прописывают целую процедуру с применением случайных чисел?
Код
Dim Boundary, s As String, n As Integer
For n = 1 To 16: s = s & Chr(65 + Int(Rnd * 25)): Next
Boundary = s & CDbl(Now)
Не проще ли принять какую-нибудь стандартную комбинацию символов или придумать какой-нибудь оператор отвечающий за такое разделение?
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
М-да... пожалуй мне эту Бандуру ("Boundary") не понять.  :D
Но, спасибо doober!
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
Всем привет!
Хоть и с запозданием  :)  хочу поблагодарить volond75 за совет с транслитом.
Ну, и желая продолжить данную ветку обсуждения способов VBA-отправки в Телеграм, напишу парочку вопросов.
1-й вопрос. Если я не ошибаюсь, мы пришли к тому, что файл с подписью на русском языке можно отослать в Телеграм только в два захода: первый, выслав текстовое сообщение с названием файла, ну, или с каким либо комментарием к нему (sendMessage), и второй заход это отправка самого файла (sendDocument). Здесь я столкнулся с такой проблемой: у меня есть к отправке десяток файлов, которые я отсылаю в следующем порядке:
  sendMessage (1)
  sendDocument (1)
  ...
  sendMessage (10)
  sendDocument (10)
но вот приходят они по принципу "кто меньше, тот и быстрее", ну, например так:
  sendMessage (1)
  sendMessage (2)
  sendMessage (3)
  sendDocument (1)
  sendMessage (4)
  sendMessage (5)
  sendDocument (2)
и т. д.
Как это побороть? Очень не хотелось бы терять связь между сопроводительной надписью и файлом.
2-й вопрос образовательного характера. Не могу найти вразумительного ответа, что такое "Boundary" и зачем он нужен, на что он влияет? И почему он бывает то в виде константы (как пример: 3fbd04f5-b1ed-4060-99b9-fca7ff59c113), то в виде генерируемого значения:
Код
Dim Boundary, s As String, n As Integer
For n = 1 To 16: s = s & Chr(65 + Int(Rnd * 25)): Next
Boundary = s & CDbl(Now)
Спасибо!
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
Цитата
написал:
Добрый день, я решил эту проблему отсылая фото как документ.
Точно! Дмитрий, точно! Огромное спасибо!

Осталось разобраться, как отсылать файлы с русскими названиями. Ибо в противном случае на Телеграм приходит, что-то несуразное.
Изменено: Izobilie Logic - 29.10.2022 09:38:38
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
Добрый день всем!
Хочу продолжить тему, задав такой вопрос: что нужно исправить в вышеупомянутом коде, что бы изображение отсылалось без сжатия.
Когда вручную отправляешь в Телеграм графический файл (путем его простого перетягивания мышкой из папки на ПК в чат Телеграм), Телеграм предлагает на выбор два варианта отправки "Перетащите сюда изображения для отправки их без сжатия" и "Перетащите сюда фотографии для быстрой отправки". Код, представленный в этом форуме, является аналогом "быстрой" отправки, то бишь отправки с некоторой долей сжатия, что сказывается на качестве, отсылаемого изображения. А как с помощью кода можно отправить изображение без сжатия?Спасибо!
Перестала работать отправка почты через CDO, отказ SMPT сервера
 
Добрый день!
Хочу возобновить данную тему, так как проблема, возникшая у меня, точь в точь, как у OlegO, но есть нюанс в виде небольшого дополнения.
Начало истории совпадает один в один - все работало до определенного момента по идентичному алгоритму:
Код
Sub ПочтаCDO()

Dim msg As Object
Dim config As String
Set msg = CreateObject("CDO.Message")
msg.BodyPart.Charset = "windows-1251"
config = "http://schemas.microsoft.com/cdo/configuration/"
    
    With msg
        .To = "Получатель@gmail.com"
        .From = "Отправитель@gmail.com"
        .Subject = "Текст"
        .TextBody = "Текст"
        .AddAttachment "c:\Файл"
            With .Configuration.Fields
                .Item(config & "sendusing") = 2
                .Item(config & "smtpserver") = "smtp.gmail.com"
                .Item(config & "smtpauthenticate") = 1
                .Item(config & "smtpserverport") = 465
                .Item(config & "sendusername") = "Отправитель@gmail.com"
                .Item(config & "sendpassword") = "Отправитель_Пароль"
                .Item(config & "smtpusessl") = True
                .Item(config & "smtpconnectiontimeout") = 60
                .Update
            End With
        .Send
    End With

Set msg = Nothing

End Sub

И вот в один прекрасный день появляется ошибка.

С этого момента, что бы я не делал, результат неизменный - смотри "Ошибка SMTP сервера.png"  :D .
А нюанс мой заключается в том, что с данного почтового адреса, но в почтовом клиенте Thunderbird, с параметрами сервера исходящей почты (SMTP) "Настройки SMTP в Thunderbird.png" все прекрасно оправляется. Значит дело не в почтовом адресе.
Не будучи профессионалом в данной области, рискну предположить, что настройки SMTP в коде чем то отичаются от настроек в Thunderbird.
Хотя до возникновения ошибки, ни там, ни там, я ничего не менял.
Или может, что-то изменилось в структуре CDO, вследствие чего обращение CDO к серверу SMTP стало невозможным.
В общем теряюсь в догадках, которые ни на шаг меня не приближают к решению проблемы.
Уповаю на совет с вашей стороны, господа.
Изменено: Izobilie Logic - 09.06.2022 23:00:12
Отправка НЕСКОЛЬКИХ файлов, используя CDO
 
Добрый день, Дмитрий(The_Prist) Щербаков!
Сразу обращаюсь персонально к Вам (хотя, конечно же не откажусь от помощи других участников), ибо использовал ваш код:
Код
sFiles = Dir(ThisWorkbook.Path & "\" & "*.pdf")
Do While sFiles <> ""
   oCDOMsg.AddAttachment ThisWorkbook.Path & "\" & sFiles
   sFiles = Dir
Loop
А проблема моя вот в чем: если при отправке сообщения в указанной папке с файлами, подлежащими вложению, находится только один, удовлетворяющий условию файл, то в отправленном сообщении, имеем, какое-то нечитабельное вложение.

Название, размер - все соответствует действительности, а вот прочитать невозможно. И напротив - если два и более вложения, то все, как нельзя лучше.
На всяк пожарный прилагаю, используемый мною код. Может я, что-то не так оформил?
Код
Dim msg As Object
Dim config As String

Set msg = CreateObject("CDO.Message")
msg.BodyPart.Charset = "windows-1251"
config = "http://schemas.microsoft.com/cdo/configuration/"

With msg
    .From = "XXX@gmail.com" 'Адрес отправителя сообщения
    .Bcc = Range("АдресаРассылки") 'Адрес получателя сообщения. Несколько адресов. Скрытая копия
    .Subject = strFileImya 'Тема сообщения
            strFiles = Dir(strScrinShotFilePut & strFileImya & "*.png") 'Находим все файлы с названием файла
            Do While strFiles <> ""
    .AddAttachment strScrinShotFilePut & strFiles
            strFiles = Dir
            Loop
    With .Configuration.Fields
         .Item(config & "sendusing") = 2
         .Item(config & "smtpserver") = "smtp.gmail.com"
         .Item(config & "smtpauthenticate") = 1
         .Item(config & "smtpserverport") = 465
         .Item(config & "sendusername") = "XXX@gmail.com" ' Адрес отправителя
         .Item(config & "sendpassword") = "XXX" 'Пароль электронного ящика отправителя
         .Item(config & "smtpusessl") = True  '(yandex.ru, mail.ru =False)
         .Item(config & "smtpconnectiontimeout") = 60
         .Update
    End With
 If Range("АдресаРассылки") <> "" Then
    .Send
 End If
End With
Отправка НЕСКОЛЬКИХ файлов, используя CDO
 
Присоединяюсь к OlegO, с благодарностью Дмитрий(The_Prist) Щербаков!
Картинка через VBA сохраняется пустой (белой), Сохранение части листа через ChartObject в виде картинки иногда сбоит
 
Дмитрий(The_Prist) Щербаков огромное спасибо !
Все заработало. Вот уж поистине: "А ларчик просто открывался".
Дело в том, что я использовал макрос отличающийся от вышеописанных, но полностью идентичный тому, что Вы указали, с той лишь разницей, что в моем варианте отсутствовала одна строка "Parent.Select". Кстати, использованный мною макрос тоже был найден на просторах интернета, но видать в урезанном виде.
Еще раз огромное спасибо!
Изменено: Izobilie Logic - 20.03.2022 19:06:38
Картинка через VBA сохраняется пустой (белой), Сохранение части листа через ChartObject в виде картинки иногда сбоит
 

Всем добрый день!

Присоединяюсь к проблеме harddy.
Ту же проблему наблюдаю в Windows 10 с MSOffice 2019. За исключением небольшого дополнения – не иногда, а постоянно выходит белое поле. Но есть и еще одна особенность – это можно побороть если поставить точку останова на команде «Paste» и выждав паузу, вручную продолжить выполнение макроса. Имеет значение продолжительность паузы. Если сделать все быстро, то снова получим белое поле. Пауза, полученная командой

Application.Wait Time:=Now + TimeValue("0:00:01")

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

При выполнении макроса в Windows XP с MSOffice 2007 проблема на наблюдается.
Страницы: 1
Наверх