Страницы: 1
RSS
из outlook в excel = пара вопросов
 
мне необходимо экспортировать определенные поля писем из Outlook 2003 в Excel 2003  
 
Sub MyFirstMacros()  
 Set xlApp = GetObject(, "Excel.Application")  
   Dim myItems, myItem, myAttachments, myAttachment As Object  
   Dim myOrt As String  
   Dim myOlApp As New Outlook.Application  
   Dim myOlExp As Outlook.Explorer  
   Dim Selecttion_ As Outlook.Selection  
   On Error Resume Next  
   'work on selected items  
   Set myOlExp = myOlApp.ActiveExplorer  
   Set Selecttion_ = myOlExp.Selection  
     'for all items do...  
   For Each myItem In Selecttion_  
   xlApp.[A1] = myItem.To
    'Recipients  
  'SenderEmailAddress  
   Next  
    'free variables  
   Set myItems = Nothing  
   Set myItem = Nothing  
   Set myAttachments = Nothing  
   Set myAttachment = Nothing  
   Set myOlApp = Nothing  
   Set myOlExp = Nothing  
   Set Selecttion_ = Nothing  
End Sub  
 
данный пример работает только с одной ячейкой  
два вопроса  
 
1) как мне каждый раз проверять наличие данных в ячейках?чтобы новые добавлялись снизу  
 
2) как мне реализовать цикл для подставки данных в ячейке?  
то есть чтобы одно письмо он запихнул в a1..b1..c1 , второе- в a2...b2...c2 и так далее . потом когда я выделю вторую порцию писем-возвращаемся к вопросу 1    
 
спасибо
 
Sub MyFirstMacros()  
   Set xlApp = GetObject(, "Excel.Application")  
   ' для каждого элемента из списка надо указывать тип!  
   Dim myItems As Object, myItem As Object, myAttachments As Object, myAttachment As Object  
   Dim myOrt As String, myOlApp As New Outlook.Application, myOlExp As Outlook.Explorer  
   Dim Selecttion_ As Outlook.Selection  
   On Error Resume Next  
   'work on selected items  
   Set myOlExp = myOlApp.ActiveExplorer  
   Set Selecttion_ = myOlExp.Selection  
 
   Dim sh As Object, NextRow As Object  
   Set sh = xlApp.ActiveSheet    ' активный лист Excel  
   'for all items do...  
   For Each myItem In Selecttion_  
       ' ищем очередную свободную строку  
       Set NextRow = sh.Range("A" & sh.Rows.Count).End(-4162).Offset(1)    ' первая незаполненная ячейка в столбце А  
       ' пишем в неё данные  
       NextRow.Resize(, 3).Value = Array(myItem.To, myItem.Recipients, myItem.SenderEmailAddress)  
   Next  
   'free variables ' можно и без этого обойтись  
   Set myItems = Nothing: Set myItem = Nothing  
   Set myAttachments = Nothing: Set myAttachment = Nothing  
   Set myOlApp = Nothing: Set myOlExp = Nothing: Set Selecttion_ = Nothing  
End Sub
 
спасибо большое,очень помогли
Страницы: 1
Читают тему
Наверх