绿色的VBA Interior.ColorIndex显示为1?为什么?

时间:2014-02-05 16:22:59

标签: excel vba excel-vba

这个非常简单的VBA宏有两个问题。

首先,在读取第一行中的最后一个单元格并完成它的工作后,它不会跳转到集合中的next row。以前从未使用VBA,我有一个不寻常的要求,计算出所提供的电子表格的行集中所有黑色单元格的百分比并打印它的值。

Private Sub CommandButton1_Click()

Dim rng As Range,
Dim row As Range,
Dim cell As Range,
Dim BlackCount As Integer,
Dim myCellCount As Integer,
myCellCount = 0

Set rng = Range("H4:BL540")

For Each row In rng.Rows


    For Each cell In row.Cells

      If cell.Interior.ColorIndex = 1 Then

          BlackCount = BlackCount + 1

      End If

      Debug.Print cell.Interior.ColorIndex & " " & myCellCount & " " & rng.Rows.row

      myCellCount = myCellCount + 1

      calc = 100 / myCellCount
      Total = calc * BlackCount

    Next cell
    Range("BM" & rng.Rows.row).Value = Total

    myCellCount = 0
    BlackCount = 0
    calc = 0
    Total = 0

Next row
End Sub

我添加了一个Debug.Print命令来显示我显示的值。

1 0 4
1 1 4
1 2 4
1 3 4
1 4 4
1 5 4
-4142 6 4
1 7 4
1 8 4
1 9 4
1 10 4
1 11 4
1 12 4
1 13 4
1 14 4
1 15 4
1 16 4
1 17 4
1 18 4
1 19 4
1 20 4
1 21 4
1 22 4
1 23 4
1 24 4
1 25 4
1 26 4
1 27 4
1 28 4
1 29 4
1 30 4
1 31 4
1 32 4
1 33 4
1 34 4
1 35 4
1 36 4
1 37 4
1 38 4
1 39 4
1 40 4
1 41 4
1 42 4
1 43 4
1 44 4
1 45 4
-4142 46 4
-4142 47 4
-4142 48 4
-4142 49 4
-4142 50 4
-4142 51 4
-4142 52 4
-4142 53 4
-4142 54 4
-4142 55 4
-4142 56 4

第二个问题是,在我的输出中,我知道myCellCount的值为9且rng.Rows.row的值为4,实际cell.Interior.ColorIndex的值为1当电池不是黑色时,实际上它是绿色的。

1 9 4

当然这应该是4 9 4或任何合适的绿色阴影(不重要)。

此行中有许多绿色和红色cell.Interior.ColorIndex值,但它似乎只能确认黑色和白色(无值),但绿色和红色为黑色/ ColourIndex = 1

对于ColourIndex,我有什么遗漏或不了解的情况吗?

最后,有人能说出为什么这不会跳到集合的下一行吗?

由于

@Siddharth Rout的样本;

$H$4
1 0 4
$I$4
1 1 4
$J$4
1 2 4
$K$4
1 3 4

0 个答案:

没有答案