使用字典存储&读取值以更改单元格颜色并调用宏

时间:2017-07-05 15:56:53

标签: excel vba excel-vba dictionary

我在工作表(Sheet2)上有一个表单,我希望将D列单元格中输入的值与不同工作表(Sheet5,C列)上的值列表进行比较。如果在Sheet2的D列中输入的值等于Sheet5列C中的任何值,我希望Sheet2的同一行中的F列单元格变为红色。如果D7 = Sheet5的C列中的值,我希望F7变为红色。最后,我想要检查D列中的任何值是否与我为某些值创建的宏相关联,但我试图避免硬编码。

我已经开始通过在我的VBA代码中设置字典来实现这一点,但我之前从未使用过字典,而且到目前为止我所使用的代码并没有像我一样工作。使用此代码,Sheet2的F列中的单元格不会变为红色。

Option Explicit
Sub estArrays()

Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")


' Read to dictionary
Dim i As Long
For i = 1 To 17
    dict.Add Sheet5.Range("C" & i).Value, 1
Next i

' Read column d
For i = 7 To 446
    If dict.Exists(Sheet2.Range("D" & i).Value) Then
        ' Set to Red
        Sheet2.Range("F" & i).Interior.Color = 3
    End If

Next i

End Sub

仅供参考:价值来源于" MID" Sheet2上D列中的公式,因此,不会手动输入在D列中输入的值。提前感谢您的任何答案/反馈/建议。

0 个答案:

没有答案