语法在列和行是variables的情况下select范围

如果列是一个variables,我必须做什么?

这是我以前的post

插入COUNTIF公式时,你有variables持有的价值

下面是解决scheme,但现在我有一个新的问题

Range("Q" & minRow + 1).Formula = "=COUNTIF(P$" & minRow & ":P" & minRow & ",P" & minRow + 1 & ")=0" 

如果该列是一个variables呢?

什么是语法,如果两者都是variables(我的意思是当列和行是未知的,他们的值存储在一个variables),如果列是variables和行是一个数字是什么语法?

我已经尝试过这些方法

 "=COUNTIF( & Columnz $1: & Columnz &2 ,& Columnz &2000)=0" 

这些方式

 "=COUNTIF( "& Columnz" $1: " & Columnz"2,& Columnz &2000)=0" 

我无法解决。

我想添加到上面的很好的答复,OFFSET是非常有用的,特别是当循环。
例如:

 With Range("B3") For i = 1 to 10 .offset(0, i) = "something" Next i End With 

您还可以使您的VBA更具可读性,并通过使用本机Excel(R1C1)语法消除对“可变公式”的需求。 喜欢

 myRange.offset(0,i).FormulaR1C1 = "=SUM(R1C[-1]:RC[-1])" 

这意味着从前一列的第1行到前一列的同一行之和。

最后,您可以使用RANGE(cell1,cell2)的“双参数”版本:

 With Range("B3") For i = 1 to 10 .offset(0, i).formula = "=SUM(" & Range(cells(10, 1),cells(10, i)).address & ")" Next i End With 

要定义一个范围,你也可以使用Cells ,例如:

 ActiveSheet.Cells(1,1) '=Range ("A1") ActiveSheet.Cells(1,"A") '=Range ("A1") 

如果你想定义一个范围,你可以这样做:

 Range(Cells(1,1), Cells(10,5)) '=Range("A1:E10") 

因此,你可以这样做:

 'where Columnz is a Long or an Integer "=COUNTIF(" & Range(Cells(1, Columnz), Cells(2, Columnz)).Address & "," & Cells(2000,Columnz).Address & ")=0" 

行号在你的例子中已经是一个variables: minRow 。 string连接是用VB / A中的&符号( & )完成的。 你是一半正确的,但错过了第二个&符号。 你可以这样想:

 "first string" & variable1 

这是2个string之间的连接,如果要添加第三个string,则必须使用另一个连字符:

 "first string " & variable1 & "second string" 

你的代码:

  "=COUNTIF(" & columnz & "$" & minRow & ":" & columnz & minRow & ",P" & (minRow + 1) & ")=0" 

回应你的意见:

 "=COUNTIF(" & columnz & "$1" & ":" & columnz & "1,P2)=0" 

只要从string中删除该variables,并将其包含在其他string文字中。