簡體   English   中英

Excel 2010-宏以檢​​測單元格的特定內部顏色並產生結果

[英]Excel 2010 - Macro to Detect Specific Interior Color of a Cell and Produce a Result

我用一個調用宏的命令按鈕創建了一個Excel電子表格。 宏通過Microsoft Outlook生成一封新電子郵件,其中提供了數據列表,特別是內部顏色為RGB(255、255、204)的A5至A500單元格中的數據。

但是,我沒有得到准確的結果。 宏不是專門從指定內部顏色的單元格捕獲數據,而是從備用顏色的單元格中也提供數據。 這可能是我的邏輯錯誤。

這是我目前正在使用的代碼:

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

為什么要兩次出於兩個目的使用r變量,為什么要使用(“ D”&r)建立范圍。 r是一個對象(特別是一個單元格)。 我假設您想從D和M中獲取數據,但是在同一行上?

如果是這樣,則應如下所示。

昏暗的單元格作為范圍

For Each aCell In r.Cells
    If r.Interior.Color = RGB(255, 255, 204) Then
        m = m & "<tr><td>" & ActiveSheet.Range("D" & aCell.Row) & "</td><td>" & ActiveSheet.Range("L" & aCell.Row) & "</td><td>" & _
            ActiveSheet.Range("M" & aCell.Row) & "</td></tr>"
    End If
Next

您當然可以走捷徑,並且在使用Range(“ D”&r)建立范圍時實際上正在使用r.Value。 也就是說,這是為Range(“ D”&r.Value)拍攝的...因此,如果“ r”引用其中帶有數字的單元格(例如599),那么您要引用單元格“ D599”,這是您的代碼的作用?

這對我有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM