Перейти к содержимому

Фотография

Excelпомощь, консультации...


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 914

#901
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

Приветствую всех, уважаемые друзья!

Помогите, пожалуйста, доработать макрос. Он идеально работает, но не создает вложение. 

Макрос отправки почты. Я работаю в файле, там могут быть 3-10 листов. Затем мне надо этот файл отправить. Я нашла этот макрос, он подходит,

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

Sub LetterMail()

TM = ThisWorkbook.Worksheets(4).Range("A1")

Создаем письмо в  OUTLOOK

Dim objOl As Object

Dim objMail As Object

On Error GoTo 2

Set objOl = CreateObject("Outlook.Application")

2:

If objOl Is Nothing Then MsgBox "не удалось запустить", vbCritical: Exit Sub

Set objMail = objOl.createitem(0)

With objMail

 .To = TM 'получатели письма

 .Body = "Текст письма" 'Напишите текст письма

 .Subject = ThisWorkbook.Worksheets(4).Range("A2") 'Тема

 .Display

End With

Set objOl = Nothing

Set objMail = Nothing


Сообщение отредактировал sinsemilia: 18.11.2020, 15:44:02

  • 0

#902
T-800 Danya

T-800 Danya
  • Свой человек
  • 653 сообщений

Помогите, пожалуйста, доработать макрос.

 
ИМХО думаю что как-то вот так вот...   :dandy:
 
Для ActiveWorkbook
 
Скрытый текст

Для  выбранных Worksheets

Скрытый текст

Сообщение отредактировал T-800 Danya: 18.11.2020, 16:19:51

  • 0

#903
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

Для ActiveWorkbook
 

Ой))) такой большой ))) 

Что-то он не работает, ругается на книги 


  • 0

#904
T-800 Danya

T-800 Danya
  • Свой человек
  • 653 сообщений

 

Для ActiveWorkbook

 
Что-то он не работает, ругается на книги

 


Ну так надо наверное позвать Телепатов в тред...  :dandy:  - Как ругается то?

ЗЫ А про большой - ну так как иначе то... 

 

Вы хотите из файла макросом отправить сам файл... Соотвественно,  ему надо спера сделать свою копию...

 

Создать временный файл... Затем создать письмо приаттачить к нему этот временный файл  и отправить...


Сообщение отредактировал T-800 Danya: 18.11.2020, 17:54:11

  • 0

#905
trnj

trnj
  • Свой человек
  • 741 сообщений

 

Sub LetterMail()

TM = ThisWorkbook.Worksheets(4).Range("A1")

Создаем письмо в  OUTLOOK

Dim objOl As Object

Dim objMail As Object

On Error GoTo 2

Set objOl = CreateObject("Outlook.Application")

2:

If objOl Is Nothing Then MsgBox "не удалось запустить", vbCritical: Exit Sub

Set objMail = objOl.createitem(0)

With objMail

 .To = TM 'получатели письма

 .Body = "Текст письма" 'Напишите текст письма

 .Subject = ThisWorkbook.Worksheets(4).Range("A2") 'Тема

 .Display

End With

Set objOl = Nothing

Set objMail = Nothing

 

А если сюда просто добавить 

 

.Attachments.Add "Путь к файлу"

 

 .To = TM 'получатели письма

 .Body = "Текст письма" 'Напишите текст письма

 .Subject = ThisWorkbook.Worksheets(4).Range("A2") 'Тема

 .Attachments.Add "C:\1\ВашФайл.xlsx"

 

можно ещё так попробовать 

 

.To = TM 'получатели письма
.Body = "Текст письма" 'Напишите текст письма
.Subject = ThisWorkbook.Worksheets(4).Range("A2") 'Тема

.Attachments.Add (ActiveDocument.FullName)

 

Тогда приложит текущий документ динамически (не надо прописывать путь)


Сообщение отредактировал trnj: 18.11.2020, 18:17:32

  • 0

#906
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений
Вы хотите из файла макросом отправить сам файл... Соотвественно,  ему надо спера сделать свою копию...   Создать временный файл... Затем создать письмо приаттачить к нему этот временный файл  и отправить...

Спасибо вам большое за помощь!  :)  :hi:  

 

А если сюда просто добавить 

Да! То, что надо! Воспользовалась вашим вариантом 2, только он сначала ругался и тут до меня дошло почему. Я заменила (ActiveDocument.FullName) на (ActiveWorkbook.FullName) и все заработало! Спасибо вам огромное!  :hi:


Сообщение отредактировал sinsemilia: 19.11.2020, 08:45:48

  • 0

#907
trnj

trnj
  • Свой человек
  • 741 сообщений

 Да! То, что надо! Воспользовалась вашим вариантом 2, только он сначала ругался и тут до меня дошло почему. Я заменила (ActiveDocument.FullName) на (ActiveWorkbook.FullName) и все заработало! Спасибо вам огромное!  :hi:

 

 

Упс, сорри за очепятку, сто лет уже не работал с макросами.

 

Тогда ещё есть смысл добавить после end with

ActiveWorkbook.Save 

Чтобы сохранить текущий файл

 

Или как Козырь вам советовал выше, сохранить во временный файл, и его прикладывать, потом удалить (по желанию)

 

ActiveWorkbook.SaveAs "C:\ВременныйФайл.xls", FileFormat:=52


  • 0

#908
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

 

Упс, сорри за очепятку, сто лет уже не работал с макросами.

 

Тогда ещё есть смысл добавить после end with

ActiveWorkbook.Save 

Чтобы сохранить текущий файл

 

Или как Козырь вам советовал выше, сохранить во временный файл, и его прикладывать, потом удалить (по желанию)

 

ActiveWorkbook.SaveAs "C:\ВременныйФайл.xls", FileFormat:=52

Да, отлично! Добавила автосохранение, теперь даже кнопку не надо нажимать)))

Там путь к файлу прописывать не вариант, потому что папки каждый раз новые, дублируются, а файлом много + надо смотреть прежде чем отправляешь) 

Спасибо вам большое за помощь! Супер  :)  :rotate:  


  • 0

#909
punter

punter
  • Свой человек
  • 886 сообщений

Всем, добрый день! Кто может подсказать как при сцеплении двух ссылок (числа и текста) группа разрядов числа отображались раздельно? (как в ячейке А1)

 

Excel.png

 

Спасибо авансом!


  • 0

#910
Elimoe

Elimoe
  • Свой человек
  • 817 сообщений

Всем, добрый день! Кто может подсказать как при сцеплении двух ссылок (числа и текста) группа разрядов числа отображались раздельно? (как в ячейке А1)

 

Excel.png

 

Спасибо авансом!

В данном примере можно как форматом ячейки это решить без сцепки - просто в Custom вставить, что-то вроде этого  #,##0.00 [$KZT];-$#,##0.00 [$KZT]

 

Либо при сцепке использовать функцию TEXT(ссылка на ячейку с числом, формат для этой ячейки) и уже её сцеплять со второй частью. Только при использовании пробела в качестве разделителя возможно придётся ещё поверх этого использовать TRIM - для случаем когда число меньше 1000, иначе Эксель вам может туда ведущий пробел вставить (т.е. не "109.96", а " 109.96")


Сообщение отредактировал Elimoe: 30.11.2020, 06:31:06

  • 1

#911
maclien800

maclien800
  • Гость
  • 7 сообщений

Я вообще не шарю в ексель


  • 0

#912
makemake96

makemake96
  • Гость
  • 6 сообщений

Подскажите пж-та как в excel формулами убрать последние три слова?

 

Например:

Есть: "Генеральный директор Иванов Иван Иванович", нужно: "Генеральный директор"

 

 

а также превратить "Генеральный директор Иванов Иван Иванович" в "Генеральному директору Иванов И. И."


Сообщение отредактировал makemake96: 20.03.2022, 18:32:43

  • 0

#913
punter

punter
  • Свой человек
  • 886 сообщений

Добрый день, подскажите пж-та как в столбце F прописать формулу, которая будет по суммам в столбцах B и Е находить поставщиков в столбце А, а также суммировать значения в столбце B, чтобы потом сопоставив сумму в столбе Е дать результат

 

gallery_345074_18414_51186.jpg


Сообщение отредактировал punter: 25.03.2022, 18:39:35

  • 0

#914
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

Добрый день, подскажите пж-та как в столбце F прописать формулу, которая будет по суммам в столбцах B и Е находить поставщиков в столбце А, а также суммировать значения в столбце B, чтобы потом сопоставив сумму в столбе Е дать результат

 

gallery_345074_18414_51186.jpg

Можно написать формулу СУММЕСЛИМН, в которой можно указать все диапазоны и все условия. Только я не поняла, в каждой ячейке свое условие должно быть или как?  


  • 0

#915
sinsemilia

sinsemilia
  • В доску свой
  • 3 095 сообщений

Подскажите пж-та как в excel формулами убрать последние три слова?

 

Например:

Есть: "Генеральный директор Иванов Иван Иванович", нужно: "Генеральный директор"

 

 

а также превратить "Генеральный директор Иванов Иван Иванович" в "Генеральному директору Иванов И. И."

Подумаю над формулой, в ближайшее время отвечу. 


  • 0


Количество пользователей, читающих эту тему: 0

пользователей: 0, неизвестных прохожих: 0, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.