2016-03-08 56 views
1

有人能指出我正確的方向嗎,我不知道如何最好地處理這個問題,以便解決我的問題並做我需要的工作。計數單元格值並存儲在變量中供以後使用vba

我有一個excel文件,有三欄可以保存Green,Amber和Red的數據。對於每一行,它們可以具有所有相同的值或不同的值,每行的總值將是: - 如果三個值中的一個或多個值是紅色,則所有值都是紅色,如果沒有紅色和一個或多個的值是琥珀色,如果這些值都不存在,那麼總體上就是琥珀色,那麼它將是綠色的。我需要計算每種顏色的整體值的數量,但是在特定的單元格範圍內。我有一些腳本,將找到的第一個行號和我需要做搜索的範圍的最後一個行號: -

mediumStartRow = Range("H:H").Find(what:="Medium", after:=Range("H21")).Row 
mediumEndRow = Range("H:H").Find(what:="Medium", after:=Range("H21"), searchdirection:=xlPrevious).Row 

我不知道的最好的,爲什麼來解決這個問題。任何人都可以指向正確的方向。

我已經試過這樣的事情: -

With Range("AS:AU" & mediumStartRow("AS:AU" & mediumEndRow)) 
    .Formula = "=IF(COUNTIF(Range"=Red")>0,"Red",IF(COUNTIF(Range,"=Amber")>0,"Amber","Green"))" 
End With 

這是Excel文件的一個例子

sample excel document

回答

0

使用這一些變化得到什麼youre尋找

=IF(COUNTIF(C:C, "red")>2, "red", IF(COUNTIF(C:C, "amber")>2, "amber", "green")) 
+0

我得到一個編譯錯誤,它不像「紅色」(AS:AU,「紅色」),它也沒有似乎喜歡With Range(「AS:AU」&mediumStartRow(「AS:AU」&mediumEndRow))說預期的數組。 @Doug大衣 – user3088476

+0

嗯,我想如果你打算使用這個作爲一個工作表功能的範圍,你將不得不引用vba中的範圍而不是工作表格式。 –

+0

類似於這個Application.WorksheetFunction.Average(Worksheets(「Sheet1」)。Range(「C1:C8000」)) –

相關問題