i我想使用一个多嵌套公式,使用= IF(AND(EXACT(TEXT(A8,“ mmm”))等公式来确定A列中的日期是否属于特定的月份/年份。 “ Jan”,EXACT(TEXT(A8,“ yyyy”),“ 2018”),“ Y”,“ N”) 但是,为了使该公式在VBA中更具动态性,我想用通过弹出输入框定义的自定义月份替换“ Jan”,因此
Dim mth As String
FormulaR1C1= "=IF(AND(EXACT(TEXT(RC[-2],""mmm"")," & mth & ",EXACT(TEXT(A8,""YYYY""),""2018""),""Y"",""N"")"
当我这样做时,该公式无法正确解析,因为出现了“ Jan”一词而没有引号,因此两者不匹配: = IF(OR(EXACT(TEXT(A9,“ mmm”),Jan)),“ Y”,“ N”)
如何修改代码以在输出中获取“ Jan”?
谢谢
编辑: 昏暗的字符串 mth =“ Jan”
设置FormulaRange = Range(“ C7:C15”) FormulaRange.FormulaR1C1 =“ = IF(AND(EXACT(TEXT(RC [-2],”“ mmm”“),”“&mth&”“,EXACT(TEXT(A8,”“ YYYY”“), “”“ 2018”“)”“” Y“”“” N“”)“
答案 0 :(得分:1)
要将双引号放在VBA中的字符串中,您必须使用双qoutes ""
,即,当您编写""""
时,意味着该字符串包含一个双引号,因此您的代码应看起来像这样:
Dim mth As String
FormulaR1C1 = "=IF(AND(EXACT(TEXT(RC[-2],""mmm""),""" & mth & """),EXACT(TEXT(A8,""YYYY""),""2018""),""Y"",""N"")"
答案 1 :(得分:0)
如果我理解正确,您正在尝试检查A列中的日期是否在特定月份,是吗?使用
if MonthName(Month(c.value)) = userInput then
...
end if
用于某些Cell c和String userInput。您可能还需要根据日期的格式使用CDate(c.value)。