我有一个工作表(每天),其中有数据列和标题。数据是动态的,基于一个月中的天数,并且已被有条件地格式化为图标(不完整= T,完整= R)。我正在尝试在另一个工作表(WS2)上创建一个图表,以显示每个项目(标题)的完成和未完成百分比。
我在第3个工作表(WS3)上有一张表格,用于对每列(计数“ T”和计数“ R”)中的所有非空单元格进行计数。 (例如= COUNTIF(Daily!D5:D29,“ R”))。 WS1上的图表从WS3中为每个项目选择数据。有时我必须在“每日”页面上添加或删除一列。我正在尝试编写一个子项,以使用CountIF和CountA遍历Daily上的每一列,并在WS2上显示结果。
Sub LoopforCt()
Dim ws As Worksheet
Dim Daily As Worksheet
Dim Test As Worksheet
Dim AllData As Variant
Dim pcv As Range
Set Daily = Sheets("Daily")
Set Test = Sheets("Test")
Set AllData = Daily.Range("B5:B100")
Set pcv = Test.Range("A22")
With AllData
pcv = "=COUNTIF(Daily!C5:C29,""R"")"
End With
End Sub
我已经能够使countif在第一列中起作用,但是我对如何将其循环放置一无所知。我想继续对Test.Range(“ B22”)等中的下一列结果使用CountIf。
谢谢!
答案 0 :(得分:0)
您不需要循环。您可以在一行中将公式写到Range
。您使用的是相对引用,因此C5:C29
会分别变成D5:D29
,E5:E29
。
Test.Range("A22:X22").Formula = "=COUNTIF(Daily!C5:C29,""R"")" ' replace X with whatever column you need.
或者,如果您想保留pcv
,
Set pcv = Test.Range("A22:X22")
pcv.Formula = "=COUNTIF(Daily!C5:C29,""R"")"