Vba Excel宏内部颜色

Vba Excel宏内部颜色,vba,excel,Vba,Excel,我是Excel宏的新手,在使用我编写的宏时遇到了一些问题。当我尝试运行此脚本时,会出现“运行时错误'13'类型不匹配”错误。我要做的是让excel检查单元格是否为黑色,如果为黑色,则让excel将“myBit”中的相应数字添加到“ans”中,并在行尾将列“J”设置为“ans”,然后重复下一列。很抱歉,如果你觉得这让人困惑,但我尽了最大努力解释我想做什么 Private Sub CommandButton1_Click() Dim myRow Dim myBit Dim ans As Intege

我是Excel宏的新手,在使用我编写的宏时遇到了一些问题。当我尝试运行此脚本时,会出现“运行时错误'13'类型不匹配”错误。我要做的是让excel检查单元格是否为黑色,如果为黑色,则让excel将“myBit”中的相应数字添加到“ans”中,并在行尾将列“J”设置为“ans”,然后重复下一列。很抱歉,如果你觉得这让人困惑,但我尽了最大努力解释我想做什么

Private Sub CommandButton1_Click()
Dim myRow
Dim myBit
Dim ans As Integer
Dim c As Integer
Dim r As Integer
myRow = Array("B", "C", "D", "E", "F", "G", "H", "I")
myBit = Array(128, 64, 32, 16, 8, 4, 2, 1)
c = 0
r = 3
For r = 3 To 11
    ans = 0
    For c = 0 To 8
        If Cells(myRow(c) + r).Interior.Color = RGB(0, 0, 0) Then ans = ans + myBit(c)
    Cells("J" + r).Value = ans
    Next c
Next r
End Sub

单元格
的语法是
单元格(行、列)
。请看这个

您需要的是
范围
,而不是范围。也有一些事情是不需要的。这是您正在尝试的吗(未经过彻底测试)


单元格
的语法是
单元格(行、列)
。请看这个

您需要的是
范围
,而不是范围。也有一些事情是不需要的。这是您正在尝试的吗(未经过彻底测试)


谢谢你!我刚刚更正了“for”循环的代码,因为您将7改为8,但现在效果非常好。我将
8
改为
8
,因为您在原始问题中有
8
:)谢谢!我刚刚更正了“for”循环的代码,因为您将7改为8,但现在效果非常好,我将
8
改为
8
,因为您在原始问题中有
8
Private Sub CommandButton1_Click()
    Dim ans As Integer, c As Integer, r As Integer
    Dim myRow, myBit

    myRow = Array("B", "C", "D", "E", "F", "G", "H", "I")
    myBit = Array(128, 64, 32, 16, 8, 4, 2, 1)

    For r = 3 To 11
        ans = 0
        For c = 0 To 8
            If Range(myRow(c) & r).Interior.Color = RGB(0, 0, 0) Then _
            ans = ans + Val(myBit(c))

            Range("J" & r).Value = ans
        Next c
    Next r
End Sub