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

Страницы: 1
VBA рассылка данных отдельного листа как значение или в формате XPS, в каком виде лучше "выдернуть" лист из файла для дальнейшей рассылки?
 
Спасибо. Я ответственно подойду к решению своей задачи и во всем основательно разберусь..
VBA рассылка данных отдельного листа как значение или в формате XPS, в каком виде лучше "выдернуть" лист из файла для дальнейшей рассылки?
 
Да..отличная идея..Возьму на заметку. очень понравилась. Спасибо.
VBA рассылка данных отдельного листа как значение или в формате XPS, в каком виде лучше "выдернуть" лист из файла для дальнейшей рассылки?
 
Да..вижу..Чувствую себя дурачком...Я с макросами на Вы..Пробую удалить из своего макроса этот кусочек и вставить как у Pirst. но все равно дает ошибку

Код
Sub SplitSheets2()
    Dim s As Worksheet
    Dim wb As Workbook
    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range
    Dim asTo, asSubject, asBody, asAttachment
   
    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
   
    For Each wsSh In Sheets
asTo = wsSh.Range("A17").Value
asSubject = wsSh.Range("B17").Value
asBody = wsSh.Range("C17").Value
   
    Set wb = ActiveWorkbook
    For Each s In wb.Worksheets
        asAttachment = wb.Path & "" & s.Name & ".xps"
        s.ExportAsFixedFormat Type:=xlTypeXPS, Filename:=asAttachment, _
        Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
        Set OutMail = OutApp.CreateItem(0)
        On Error Resume Next
        With OutMail
            .To = asTo
            .Subject = asSubject
            .body = asBody
            .Attachments.Add asAttachment
            .Display
        End With
        On Error GoTo 0
        Set OutMail = Nothing
    Next
     
    Set OutApp = Nothing
    Application.ScreenUpdating = True
End Sub



В такие моменты хочется..взять учебник и начать с Азов
VBA рассылка данных отдельного листа как значение или в формате XPS, в каком виде лучше "выдернуть" лист из файла для дальнейшей рассылки?
 
для TheBestoftheBest поясняю...
Я на каждом листе указываю НОВЫЙ адрес. (один). А листов 40 в исходном файле
VBA рассылка данных отдельного листа как значение или в формате XPS, в каком виде лучше "выдернуть" лист из файла для дальнейшей рассылки?
 
макрос просто скопировала с сайта и вставила
Код
Sub SplitSheets2()
    Dim s As Worksheet
    Dim wb As Workbook
    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range
    Dim asTo, asSubject, asBody, asAttachment
   
    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
   
    asTo = Range("A17").Value
    asSubject = Range("B17").Value
    asBody = Range("C17").Value
   
    Set wb = ActiveWorkbook
    For Each s In wb.Worksheets
        asAttachment = wb.Path & "" & s.Name & ".xps"
        s.ExportAsFixedFormat Type:=xlTypeXPS, Filename:=asAttachment, _
        Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
        Set OutMail = OutApp.CreateItem(0)
        On Error Resume Next
        With OutMail
            .To = asTo
            .Subject = asSubject
            .body = asBody
            .Attachments.Add asAttachment
            .Display
        End With
        On Error GoTo 0
        Set OutMail = Nothing
    Next
     
    Set OutApp = Nothing
    Application.ScreenUpdating = True
End Sub


Вот файлик. Просто придумала для примера.
VBA рассылка данных отдельного листа как значение или в формате XPS, в каком виде лучше "выдернуть" лист из файла для дальнейшей рассылки?
 
Если это возможно...могли бы еще разок помочь в уже закрытом вопросе...
Для рассылки использую рекомендованный макрос от The Prist.
В файле из 40 листов. На каждом листе в ячейку A17 (согласно адреса в макросе) ввожу разный адрес.
Но когда макрос запускаю...Он (при создании письма на отправку) почему то везде берет один и тот же адрес активного листа.
40 раз один и тот же адрес...
В чем моя ошибка?
Буду очень признательна.
VBA рассылка данных отдельного листа как значение или в формате XPS, в каком виде лучше "выдернуть" лист из файла для дальнейшей рассылки?
 
Hugo- спасибо за отзывчивость, а The_Prist, я Вами просто восхищаюсь!
Все идеально!
У Вас очень крутой сайт. Становлюсь постоянным читателем,- и айда к знаниям!!!
Огромное человеческое спасибо за оперативность и качество!
VBA рассылка данных отдельного листа как значение или в формате XPS, в каком виде лучше "выдернуть" лист из файла для дальнейшей рассылки?
 
Огромное спасибо, Андрей VG и Hugo, что откликнулись. Мне потребовалось немного времени во всем разобраться.
Вы создаете огромный стимул для меня познавать Excel  и Vba глубже.
Да, в части создания отдельных листов в формате xps. у меня все получилось.
Но теперь возник тупик следующего порядка
Для рассылки отдельных листов через Outlook я использовала следующий макрос.
Код
Sub mailing()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range
    Dim asTo, asSubject, asBody, asAttachment
 
    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
 
    asTo = Range("A17").Value
    asSubject = Range("B17").Value
    asBody = Range("C17").Value
    asAttachment = Range("D17").Value
 
    For i = 1 To UBound(asTo, 1)
        Set OutMail = OutApp.CreateItem(0)
        On Error Resume Next
        With OutMail
            .To = asTo(i, 1)
            .Subject = asSubject(i, 1)
            .body = asBody(i, 1)
            .Attachments.Add asAttachment(i, 1)
            .Display
        End With
        On Error GoTo 0
        Set OutMail = Nothing
    Next i
cleanup:
    Set OutApp = Nothing
    Application.ScreenUpdating = True
End Sub


Как его теперь адаптировать для рассылки отдельных листов формата .xps, полученных после применения Вами подсказанного макроса?
Или я вообще не на верном пути?
Надеюсь на Вашу помощь.
VBA рассылка данных отдельного листа как значение или в формате XPS, в каком виде лучше "выдернуть" лист из файла для дальнейшей рассылки?
 
Доброй ночи!!
Я добросовестный участник форума.. и прежде чем открывать тему...Внимательно 2 дня листала форум..Но так и не смогла решить до конца свою проблему. Не откажите в помощи.
Суть проблемы. Есть файл
лист 1 - исходные данные
лист сводная - на базе исходных данных строится сводная таблица
лист 2-27 - это исходная таблица разбрасывается по листам через Параметры сводной таблицы \ Отобразить страницы фильтра отчета

Дальнейшая цель - это рассылка каждого листа своему адресату (знаю, что тема избитая)
Имеется макрос, который формирует каждый лист в отдельный файл (в формате .xls)
Код
Sub SplitSheets2()
    Dim s As Worksheet
    Dim wb As Workbook
    Set wb = ActiveWorkbook
    For Each s In wb.Worksheets                                
        s.Copy                                                 
        ActiveWorkbook.SaveAs wb.Path & "" & s.Name & ".xlsx"  
        ActiveWorkbook.Close False              
    Next
   End Sub

Посоветуйте как лучше поступить:
а) возможно ли доработать макрос (выше), чтобы он каждый лист сохранял как значение в отдельный файл (без потери в форматировании)
б) доработать макрос ниже, чтобы он все листы ПООЧЕРЕДИ сохранял в формате XPS в отдельные файлы
Код
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypeXPS, Filename:= _
     "C:\Договоры\Book1.xps", Quality:=xlQualityStandard, _
     IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:= False

Далее планирую использовать макрос для рассылки полученных файлов через OutLook адресатам
Заранее спасибо.
P.S. все макросы с Вашего сайта)
Страницы: 1
Наверх