Excel VBA – диапазон вызывающего абонента не может быть определен

У меня есть список с столбцами с именами и адресами электронной почты, за которыми следует другой столбец с кнопкой «Отправить письмо», чтобы запустить макрос ниже.

Предполагается, что макрос должен вывести местоположение текущей строки с помощью функции application.caller а затем объединить номер строки с заранее определенными номерами столбцов, чтобы добиться успеха, вытащить первые имена, фамилии, адреса электронной почты, предварительно заполнив мои элементы электронной почты. Это, похоже, больше не работает, поскольку application.caller возвращает empty , поэтому при нажатии кнопки отправки электронной почты данные ячейки / строки не передаются.

Код ниже:

 Sub Mail_ThankYouNote() 'Working in 2000-2010 Dim OutApp As Object Dim outMail As Object Dim rng As Range Dim lastrow, nationality, SentDate, EmailCount, Title, MailTO, LangStatus As Range With Application .ScreenUpdating = False .EnableEvents = False End With ActiveWorkbook.Sheets("Data").Select ' check if outlook is open, if not launch application Call CheckOutlook ' define column locations for nationality, sent-date, email count, title Set OutApp = CreateObject("Outlook.Application") Set outMail = OutApp.CreateItem(0) Set caller_button = ActiveSheet.Cells(ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row, 14) Set nationality = ActiveSheet.Cells(ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row, 7) Set SentDate = ActiveSheet.Cells(ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row, 13) Set EmailCount = ActiveSheet.Cells(ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row, 15) Set Title = ActiveSheet.Cells(ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row, 8) Set MailTO = ActiveSheet.Cells(ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row, 12) MsgBox caller_button, vbOKOnly, "Info" ' check if title is empty If Title = "" Then MsgBox "The guest title is empty, please fill in a title before sending the post stay email.", vbOKOnly, "No title" Exit Sub End If 

На самом деле не уверен, что вызывает это, поскольку он работал до …

Оцените любую помощь по этому поводу. A2k

EDIT Оказывается, это была проблема, связанная с различием языков в моих двух офисных версиях. Английская копия отлично работала, но китайская копия требовала от меня удалять кнопки и воссоздавать их. Насколько я могу это понять, это связано с тем, что английская версия определяет форму как (Rectangle Shape XXX), в то время как китайцы идентифицируют ее как нечто с символами UTF 8.

Удаление формы и воссоздание кнопки сделали трюк.

Вы уверены, что application.caller возвращается пустым? потому что это кажется очень маловероятным. В начале типа программы

 debug.print application.caller 

И нажмите на кнопку, не запускайте ее с помощью F8 или F5. Вы должны увидеть значение в ближайшем окне. Плюс я столкнулся с странными проблемами при использовании кнопок ActiveX. Попробуйте изменить его на обычную кнопку. Другое, что трудно сказать, почему этот вопрос происходит, если мы не посмотрим на книгу.

  • «Транспорт не удалось подключиться к серверу» при попытке отправить электронную таблицу через SMTP
  • Получить все непустые значения из столбца и конвертировать в список рассылки
  • Макросъемка через ячейки с аналогичным значением / продуктом и отправка этого диапазона электронной почты
  • Отправка диаграммы Excel по почте (Outlook)
  • Excel макрос VBA напоминания электронной почты
  • AppleScript для выбора сообщений из папки Imap на Mail.app
  • Как решить «Время соединения завершено», хотя данные сохраняются в базе данных + почта и отправленные sms
  • Excel находит и заменяет все, кроме адресов электронной почты?
  • Поддерживать разрывы строк с ячейкой при назначении значения таблице html
  • Отправка автоматической электронной почты из Excel с помощью Outlook при изменении таблицы
  • Excel VBA представляет электронную почту для нескольких приложений To, CC и BCC
  • Interesting Posts
    Давайте будем гением компьютера.