语法在列和行是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文字中。