VBA没有输入Excel公式

时间:2015-03-30 11:20:54

标签: excel vba excel-vba

过去几个小时我一直坚持这一点,这让我疯了。我试图在单元格B2中输入此公式:

=IF(OR(C2="Yes",D2="Yes",E2="Yes",F2="Yes",G2="Yes",H2="Yes",I2="Yes"),"Yes",IF(AND(C2="No",D2="No",E2="No",F2="No",G2="No",H2="No",I2="No"),"No"))

该公式运行正常,但在通过VBA宏运行时,没有公式输入到单元格中。

我录制了宏,复制并粘贴了输出,单元格仍然是空白。以下是录音的输出:

Range("B2").Select
ActiveCell.FormulaR1C1 = _
    "=IF(OR(RC[1]=""Yes"",RC[2]=""Yes"",RC[3]=""Yes"",RC[4]=""Yes"",RC[5]=""Yes"",RC[6]=""Yes"",RC[7]=""Yes""),""Yes"",IF(AND(RC[1]=""No"",RC[2]=""No"",RC[3]=""No"",RC[4]=""No"",RC[5]=""No"",RC[6]=""No"",RC[7]=""No""),""No""))"

我也尝试过Range(" B2")。公式,但没有成功。

有什么建议吗?谢谢!

3 个答案:

答案 0 :(得分:0)

如果引用的所有单元格都是空白的,那么您应该得到一个“假”'结果

你的开始 (OR(C2 ="是",D2 ="是",E2 ="是",F2 ="是",G2 =& #34;是",H 2 ="是",I2 ="是&#34) 如果其中任何一个=是,则返回是

然而,它们是空白的,所以继续这样做 IF(AND(C2 ="否",D2 ="否",E2 ="否",F2 ="否",G2 = "否",H 2 ="否",I2 ="否"),"否&#34)

它们仍然是空白的,如果你说所有单元格必须为NO才能给出NO返回,则给出FALSE - 第二个

你可以在正在使用的单元格周围发布数据吗?

答案 1 :(得分:0)

你也可以使用这个公式 - 计算有多少是,并计算有多少是否。

=IF(COUNTIF($C$1:$I$1,"Yes")>=1,"Yes",IF(COUNTIF($C$1:$I$1,"No")=7,"No"))

如果存在空白或“是”或“否”以外的值,则仍然存在问题。

如果5说'是',1说'鲍勃',它将返回'是',但如果6说'不',1说'鲍勃',它将返回假。

你需要说明如果第二部分不是真的会发生什么:

=IF(OR(C2="Yes",D2="Yes",E2="Yes",F2="Yes",G2="Yes",H2="Yes",I2="Yes"),"Yes",IF(AND(C2="No",D2="No",E2="No",F2="No",G2="No",H2="No",I2="No"),"No",**"Neither Yes or No"**))

=IF(COUNTIF($C$1:$I$1,"Yes")>=1,"Yes",IF(COUNTIF($C$1:$I$1,"No")=7,"No","**Neither Yes or No**"))

或者@izzymo说 - 如果至少有一个是,则返回Yes,否则返回No:

=IF(COUNTIF($C$1:$I$1,"Yes")>=1,"Yes","No")

答案 2 :(得分:-1)

IF语句有3个部分:

  • 条件
  • “if true”
  • “if false”。

你的第一个陈述全部都是:

  • if(一堆单元格中的任何一个是'是')
  • '是'
  • 另一个IF声明 *

问题在于“另一个IF声明”,您有:

  • if(一堆单元格为'no')
  • '否'
  • 什么...

IF(AND(C2="No",D2="No",E2="No",F2="No",G2="No",H2="No",I2="No"),"No", ???put a false condition here???)

*或者,您可以在评论中建议izzymo,将“另一个IF语句”替换为“否”,最后得到相同的结果 < / p>