从100 * 30矩阵excel vba创建一个24 * 30矩阵

时间:2014-11-27 08:55:23

标签: excel vba matrix

我已经注意到这一点,但我找不到任何适合我的问题。

所以,我有一个100 * 30的矩阵,我希望得到第一行中前4个元素的平均值,然后是第一行中元素的平均值,依此类推。

由此,我将有一个24 * 30的矩阵。我已经完成了,但是mt会将结果间隔4个元素。

如何一起创建矩阵?

这是我的代码:

Private Sub CommandButton1_Click()

    Dim media_horaria As Long
    Dim hora As Long

    media_horaria = 0
    hora = 0

    With Sheets("Folha1")
        For i = 28 To 58
            For j = 3 To 100 Step 3
                hora = Cells(i, j).Value + Cells(i, j + 1).Value + Cells(i, j + 2).Value + Cells(i, j + 3).Value
                media_horaria = hora / 4
                Cells(i + 45, j).Value = media_horaria
            Next j

            media_horaria = 0
            hora = 0

        Next i
    End With

End Sub

修改

使用结果矩阵,我想根据单元格值创建一个颜色映射。例如,如果单元格值低于0.5且高于0.45,则涂成浅红色。如果电池高于0.50且低于0.55漆深红色。随着矩阵下的图例。顶级将有一张照片。

1 个答案:

答案 0 :(得分:0)

此用于创建条件格式规则的代码段可以适合您现有的子代码或从另一个子代码运行。

With Sheets("Folha1").Cells(73, 3).Resize(31, 33)
    .FormatConditions.Delete
    .FormatConditions.Add Type:=xlExpression, Formula1:="=AND(RC>=0.45,RC<0.5)"
    With .FormatConditions(.FormatConditions.Count).Interior
        .PatternColorIndex = xlAutomatic
        .ColorIndex = 3
    End With
    .FormatConditions.Add Type:=xlExpression, Formula1:="=AND(RC>=0.5, RC<0.55)"
    With .FormatConditions(.FormatConditions.Count).Interior
        .PatternColorIndex = xlAutomatic
        .ColorIndex = 9
    End With
    .Cells(.Rows.Count, 1).Offset(2, 1) = "Legend"
    .Cells(.Rows.Count, 1).Offset(3, 0).Interior.ColorIndex = 3
    .Cells(.Rows.Count, 1).Offset(3, 1) = ChrW(8805) & "0.45 And <0.5"
    .Cells(.Rows.Count, 1).Offset(4, 0).Interior.ColorIndex = 9
    .Cells(.Rows.Count, 1).Offset(4, 1) = ChrW(8805) & "0.5 And <0.55"
End With

可能需要根据最终数据所在的位置稍微调整行和列引用。如果您对颜色选择不满意,请记录设置单元格颜色的宏,并使用.Color =而不是.ColorIndex =的有限调色板。