2016-08-16 58 views
0

我要創建一個公式,其中說3列是目前A提供範圍在宏在Excel中,B & C其中有值,直到說串行5.所以,現在要檢查如果單元格的值說C1是空白的,那麼單元格B1將是A1/Count(C)如何在下面公式

我能執行此爲單細胞,但如何可以使用下面的公式範圍A1:A5B1:B5C1:C5

Sub CheckCnt() 

Range("C6") = WorksheetFunction.CountA(Range("C1:C5")) 

If Range("C1") = "" Then 
    Range("B1") = WorksheetFunction.Round(Range("A1")/Range("C6"), 2) 
Else 
Range("B1") = 0 

End If 
End Sub 

回答

0

放置到這個FOR循環應該工作。 請參閱下面的修訂代碼。

Sub CheckCnt() 
    Dim rw as Integer 

Range("C6").Value = WorksheetFunction.CountA(Range("C1:C5")) 
For rw = 1 to 5 
    If Range("C" & rw).Value = "" Then 
     Range("B" & rw).Value = WorksheetFunction.Round(Range("A" & rw).Value/Range("C6").Value, 2) 
    Else 
     Range("B" & rw).Value = 0 
    End If 
Next rw 

End Sub 

讓我知道這是否工作。非常感謝!

+0

按預期工作..謝謝! – user6284292

+0

很高興聽到它。隨時upvote答案,因此這個問題可以被關閉。您的upvote將允許我發表評論並在未來幫助更多的人。 – excelledsoftware

+0

我試過但是不能這樣做,至少需要15個聲望才能這麼做,而我的是1. – user6284292

0

我不確定究竟是什麼公式插入,所以我把ROUND公式放在範圍B1:B5中。

B1將是:=ROUND($A1/$C$6,2)
B2將是:=ROUND($A2/$C$6,2)
等等...

此代碼使用R1C1表示法:

Sub CheckCnt() 

    'Be specific about which sheet you want the result in (otherwise it will appear in the selected sheet). 
    With ThisWorkbook.Worksheets("Sheet1") 
     With .Range("B1:B5") 
      .FormulaR1C1 = "=Round(RC1/R6C3,2)" 'Use a formula with R1C1 notation. 
      .Value = .Value 'Replace the formula with the result of the formula. 
     End With 
    End With 

End Sub 

RC1意味着該行,第1列。 R6C3表示第6行第3列。
http://www.numeritas.co.uk/2013/09/the-%E2%80%98dark-art%E2%80%99-of-r1c1-notation/