Я создал таблицу Excel с помощью командной кнопки, которая вызывает макрос. Макрос создает новое электронное письмо через Microsoft Outlook, которое предоставляет список данных, в частности данные от ячеек от A5 до A500, которые имеют внутренний цвет RGB (255, 255, 204).Excel 2010 - макрос для определения конкретного цвета интерьера ячейки и получения результата
Однако я не получаю точных результатов. Макрос не только захватывает данные из ячеек указанного внутреннего цвета, но и дает мне данные из ячеек альтернативных цветов. Это может быть логическая ошибка с моей стороны.
Вот код, я работаю с:
Private Sub btnReport_Click()
'Create Email Message
Dim r As Range
Dim m As String
Set r = ActiveSheet.Range("A5:A500")
m = "Hello,<br><br>Here is some information:<br><br>" & _
"<table border=""1"" style=""width:98.7%"" align=""left"" ><tr style=""vertical-align:top;""><td style=""width:9.3%"" nowrap>" & _
"<b>Column 1</b></td><td style=""width:10%"" nowrap><b>Column 2</b></td><td style=""width:10%"" nowrap><b>Column 3</b></td></tr>"
For Each r In r.Cells
If r.Interior.Color = RGB(255, 255, 204) Then
m = m & "<tr><td>" & ActiveSheet.Range("D" & r) & "</td><td>" & ActiveSheet.Range("L" & r) & "</td><td>" & _
ActiveSheet.Range("M" & r) & "</td></tr>"
End If
Next
'Open Email
Dim olApp As Object
Dim olMail As Object
Dim name As String
Set olApp = CreateObject("Outlook.Application")
Set olMail = olApp.CreateItem(olMailItem)
With olMail
.To = "Dee Wolf"
.Subject = "This is a subject line"
.HTMLBody = m
.Display
End With
Set olMail = Nothing
Set olApp = Nothing
End Sub
Вы тестирование на 'A5: A500' но вытягивать данные из столбцов D, L и M. Это намеренно? Изменить: можете ли вы даже «Range» («D» & r) ', если' r' - это диапазон? И вы, возможно, захотите изменить второй «r» на 'c', например. – findwindow
yes, измените 2-ю 'r' на' c' (или любую другую букву), а затем измените 'Range (" D '& r) 'на' Range ("D" и c.Row) ' –
Спасибо. не уверен, правильно ли я следил за вашим направлением, но я изменил свой код на следующий, и он не дает никаких результатов (где с моим исходным кодом, он приводит к результатам, а не к правильным результатам.) Редактировать: Извините, Проблема в том, что синтаксис системы доски объявлений [Для каждого c In r.Cells] [(«D» & c.Row)] –