我在 Excel 2010 VBA 代码中有以下问题要解决
在Range("A:A")
中,我有很多数值。只有其中一些以颜色突出显示。 ( index = 6
[黄色])。我需要 Excel VBA 代码来获取黄色突出显示值之间的中位数,并将未突出显示的单元格留在计算之外。
我已经进行了代码尝试,但它总是给我突出显示范围内的第一个值,而不是范围的中值。
Dim amarelosMediana As Range
Dim mediana As Double
For Each amarelosMediana In Range([a1], Cells(Rows.count, "A").End(xlUp))
If amarelosMediana.Interior.ColorIndex = 6 Then
mediana = Application.WorksheetFunction.Median(amarelosMediana)
End If
Next amarelosMediana
ActiveSheet.Range("C3") = "Mediana no intervalo de confianca"
ActiveSheet.Range("D3") = mediana
如您所见,我按照堆栈溢出中的一些教程中所述使用Application.WorksheetFunction.Median(amarelosMediana)
来获取中值,但它不起作用。
任何想法??
编辑:修复了一些语法。 您必须将所有突出显示的单元格传递到一个主范围中,然后在主范围上运行该功能。
Sub Macro1()
Dim amarelosMediana As Range
Dim tempRng As Range
Dim mediana As Double
Set tempRng = Nothing
For Each amarelosMediana In Range([a1], Cells(Rows.Count, "A").End(xlUp))
If amarelosMediana.Interior.ColorIndex = 6 Then
If tempRng Is Nothing Then
Set tempRng = amarelosMediana
Else
Set tempRng = Union(tempRng, amarelosMediana)
End If
End If
Next amarelosMediana
mediana = Application.WorksheetFunction.Median(tempRng)
ActiveSheet.Range("C3") = "Mediana no intervalo de confianca"
ActiveSheet.Range("D3") = mediana
End Sub