2016-02-16 63 views
1

我试图做COUNTIF函数,使用mcolmrow作为变量。 它完美地工作时,会出现问题,因为到目前为止我需要被1至每次增加mrow值,但该行范围R []中=COUNTIF(Analysis!RC[9]:R[8]C[9],""<=3"")由9.如何在VBA中的countif公式中插入一个变量?

我想踢每次增加成COUNTIF另一个变量ifor放到i = i + 9,但我不知道如何解决它。 任何人都可以帮忙吗?

Sub Test() 
    Set wb = Workbooks("Book1.xlsm") 
    Application.ScreenUpdating = False 

    LastRow0 = Sheets("Tests").Range("A" & Sheets("Tests").Rows.Count).End(xlUp).Row 

    mcol = 3 

    For mrow = 2 To LastRow0 
     Cells(mrow, mcol + 1) = "=COUNTIF(Analysis!RC[9]:R[8]C[9],""<=3"")" 
     Cells(mrow, mcol + 2) = "=COUNTIF(Analysis!RC[9]:R[8]C[9],""good"")" 
    Next mrow 

End Sub 
+0

你想让'RC [9]'中的9每次增加9? – ZwoRmi

+0

不是真的,列不更改,但行号是。例如,第一次的行范围应该是2:10,然后是11:19,等列 – Ale

回答

0

我不清楚你想增加多少。这不会是一个很大的编程问题,所以我把它留给你。我将展示如何使用变量构建公式。

您将公式创建为字符串,因此您将使用字符串操作来构造它。

Dim s As String     ; for the demo, this receives the formula string 
Dim i As Integer, j As Integer ; these are the variables we will use 
....        ; use them in loops, increment them as you need 
s = "=COUNTIF(Analysis!RC[" & Trim(Str(i)) & "]:R[" & Trim(Str(j)) & "]C[" & Trim(Str(i)) & "],""<=3"")" 

Str函数将整数转换为字符串。 Trim函数删除Str放在那里的前导空间。

希望这会有所帮助。

+0

非常感谢!添加两个For循环,我已经修复它,使用Your method:formula作为变量字符串 – Ale