计算不同大小范围内的行和列

时间:2018-06-22 15:53:31

标签: excel vba excel-vba count

下面的简短程序应循环浏览工作簿中的所有工作表,并将(C11:end)单元格中的值与该行的B列中的单元格进行比较,然后对下面的每一行重复此操作数据。

由于“溢出”错误,代码将无法运行,这意味着变量NumRows对于整数类型太大(我认为呢?)。但是,尽管每个表的NumRows和NumCols有所不同,但在每种情况下总是小于100。将类型更改为“ Long”会导致Excel挂起。我不确定为什么会这样,C11总是在右侧和底部受到数据的限制,因此.End函数不应生成大量数字。

我对此非常陌生,所以如果有人可以解释或建议修改,我将不胜感激。

Sub cond_format()

Application.ScreenUpdating = False

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

ws.Activate

Dim i As Integer
Dim j As Integer
Dim NumRows As Integer
Dim NumCols As Integer

NumRows = ws.Range("C11", ws.Range("C11").End(xlDown)).Rows.Count
NumCols = ws.Range("C11", ws.Range("C11").End(xlToRight)).Columns.Count

    For i = 1 To NumRows
            For j = 1 To NumCols

                If Cells(10 + i, 2 + j).Value >= (Cells(i + 10, 2).Value) * 1.2 Then
                        Cells(10 + i, 2 + j).Interior.Color = 10092492
                ElseIf Cells(10 + i, 2 + j).Value <= (Cells(i + 10, 2).Value) * 0.8 Then
                    Cells(10 + i, 2 + j).Interior.Color = 5263615
                End If

            Next
    Next
Next ws

End Sub

0 个答案:

没有答案