检查sheet2中的valus!R1C1是否等于sheet1!R1C?并做countif

时间:2014-12-18 08:28:59

标签: excel-vba vba excel

伙计们,很难为这个哈哈获得一个头衔。

这里有2张名为sheet7和sheet8的纸张。

在sheet7中,我有5列标记为A B C D E,每列都有一些值,在sheet8,2列中标记为COLUMN和CRETIA,现在我想使用Excel VBA来实现:

如果我输入sheet8!C1中的列标签和Sheet8!C2中的cretia,我希望代码在sheet7中找到列标签!R1,一旦找到, sheet8!C3 = COUNTIF(sheet7!A2:A12,在sheet8的CRETIA列中键入的列的cretia))/ COUNT(sheet7!A2:A12),

然后对下一栏标题做同样的事情

我希望代码具有更大的灵活性,意味着无论sheet7中有多少行和列,代码都可以自动给出结果。如何在Excel VBA中执行此操作?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

检查出来:http://www.ozgrid.com/Excel/DynamicRanges.htm您可以使用偏移功能执行您想要的操作,而无需使用代码。

现在,尽管你的问题要求代码,尽管没有自己动手将你的手腕拍到这里(!),这是圣诞节,你提供了一个你试过的公式的例子,所以这就是我的方式会使用这些信息:

创建2个范围

rng:

=OFFSET(Sheet7!$A$1,1,0,COUNTA(Sheet7!$A:$A),1)

rng_col:

=OFFSET(Sheet7!$A$1,1,MATCH(Sheet8!$A$1,Sheet7!$B$1:$F$1,0),COUNTA(Sheet7!$A:$A),1)

公式:

=SUMIF(rng,Sheet8!$B$2,rng_Col)

这假设Sheet7!$ A $ 1为空。如果你有一个标题,你将需要更改该功能的COUNTA部分,我将让你开始工作!