Как скопировать или вставить данные нескольких диапазонов во внутренний текст с помощью Excel VBA

#excel #vba

#excel #vba

Вопрос:

Я пытаюсь отправить электронное письмо с помощью VBA через GMAIL с помощью Internet Explorer. У меня есть данные в диапазоне («A1: AL4»), и я хочу поместить эти данные в текстовое сообщение gmail. если я попытаюсь использовать один диапазон, как на A1, мой код будет работать, но он не будет работать с несколькими ячейками.

 'Insert Email content
IE.document.querySelector("div[class*= LW-avf]").innerText = Sheets("Sheet1").Range("A1:AL4").Value
  

Я хочу, чтобы в теле письма были все данные от A1 до AL4.

Ответ №1:

Вы могли бы попробовать что-то вроде этого:

 Dim cell As Range
Dim sht As Worksheet
Dim emailBody As String
emailBody = ""
Set sht = ThisWorkbook.Worksheets("Sheet1")
For Each cell In sht.Range("A1:AL4").cells
    emailBody = emailBody amp; cell.Value
Next cell
  

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

Конечно, если вам нужны пробелы или разрывы строк между содержимым каждой ячейки, вы можете это сделать:

 emailBody = emailBody amp; " " amp; cell.Value
  

или

 emailBody = emailBody amp; vbNewLine amp; cell.Value