2016-12-05 2 views
0

У меня проблемы с макросом. Раньше он работал над версией Outlook и Excel, но по какой-то причине функция CC перестала работать, и я продолжаю получать ошибки.Excel-Outlook VBA 2013 не работает в 2016 г. Версия Outlook

С версии 2013 я использовал следующий код для определения CC и BCC:

Set sh = Sheets ("Sheet1") 

     .to = cell.Value 
     .CC = sh.Cells(cell.Row, 1).Range("C1:C1") 
     .BCC = sh.Cells(cell.Row, 1).Range("D1:D1") 

Это, однако, не работает в версии моего первенствует и перспективы 2016 года. Каждая строка в excel должна иметь свои собственные To, CC и BCC, выбранные из строки в Excel. По какой-то причине он говорит, что CC не является допустимым методом. Ошибка объекта_Mailitem.

  • Редактирование переменных за .cc и .bcc на "[email protected]" работает без получения ошибки. Поэтому я предполагаю, что что-то не так с линией после .cc, я попробовал несколько решений, которые оказались в одной и той же ошибке или другой ошибке, сообщая мне, что она не распознает команду .Send.

EDIT: добавлен полный код макроса

Sub Send files() 
Dim OutApp As Object 
Dim OutMail As Object 
Dim sh As Worksheet 
Dim cell As Range 
Dim FileCell As Range 
Dim rng As Range 
Dim ccontvangen As Range 

With Application 
    .EnableEvents = False 
    .ScreenUpdating = False 
End With 

Set sh = Sheets("Sheet1") 

Set OutApp = CreateObject("Outlook.Application") 

For Each cell In sh.Columns("B").Cells.SpecialCells(xlCellTypeConstants) 

    Set rng = sh.Cells(cell.Row, 1).Range("E1:Z1") 

    If cell.Value Like "?*@?*.?*" And _ 
     Application.WorksheetFunction.CountA(rng) > 0 Then 
     Set OutMail = OutApp.CreateItem(0) 
     With OutMail 
      .to = cell.Value 
      .cc = "x" 
      .Subject = "Subject" 
      .Attachments.Add "G:\signature.png", olByValue, 0 
      .Body = " " 

      For Each FileCell In rng.SpecialCells(xlCellTypeConstants) 
       If Trim(FileCell) <> "" Then 
        If Dir(FileCell.Value) <> "" Then 
         .Attachments.Add FileCell.Value 
         End If 
        End If 
      Next FileCell 
      .Send 
     End With 

      Set OutMail = Nothing 
     End If 
    Next cell 

    Set OutApp = Nothing 
    With Application 
     .EnableEvents = True 
     .ScreenUpdating = True 
    End With 
End Sub 
+1

Приветствуем вас в StackOverflow. Пожалуйста, найдите время, чтобы прочитать страницу справки, особенно разделы с названием [«Какие темы можно задать здесь?»] (Http://stackoverflow.com/help/on-topic) и [«Какие типы вопросов я должен не спрашивать? "] (http://stackoverflow.com/help/dont-ask). И что еще более важно, прочитайте [контрольный список вопросов переполнения стека] (http://meta.stackexchange.com/q/156810/204922). Вы также можете узнать о [Минимальных, Полных и Подтверждаемых примерах] (http://stackoverflow.com/help/mcve). И включите код, который вы пытаетесь проработать ... чтобы люди могли помочь. – Rdster

+0

Если строковые значения строчной кодировки работают, вы можете попробовать явно вызвать свойство .Value' на ваших диапазонах: 'sh.Cells (cell.Row, 3) .Value'. – Comintern

+1

Помогло бы показать больше вашего кода и указать, какие строки вызывают проблемы, а также точные сообщения об ошибках, которые вы получаете –

ответ

0

я столкнулся с аналогичной проблемой, где сюжетная линия, To, Cc и были не перечислены полностью.

Я понял проблему, добавив & ";" до конца каждого поля.