本帖最后由 rebornxldeng 于 2012-9-25 08:55 编辑
Range("c" & x) = "=SUMPRODUCT(($A$2:$A$20< " & Range("a" & x) & ") *(1/COUNTIF($A$2:$A$20,$A$2:$A$20)))+1"
用VBA语句在单元格中写入公式实际上是以文本格式将公式内容录入单元格;
这也是最开始的双引号后面为什么会紧跟一个等号的原因.
我标蓝的部分是VBA中引用 单元格 的格式.
黄色部分是 公式的文本(中间要录入变量的话,必须在文本的开始和结尾处 使用引号)
蓝色部分会生成一个值,然后黄色部分与该值连起来共同构成一个 完整的可正确计算的 单元格公式.
再弄个简单点的示例 Range("c2") = "=sum(" & Range("c3") & "," & Range("c4") & ")"
这个知识点理解的难点在于,你是以输入公式的思想在解读,但是这个问题实际上是在单元格中输入文本.
文本1 & 变量1 & 文本2 & 变量2 ... ... & 结束文本
另外,这个知识点了解了即可.其实并不难,实用性也很有限...因为还不如直接在单元格里写公式呢.