VBA-使用嵌套公式和自定义变量

VBA-使用嵌套公式和自定义变量,vba,excel,Vba,Excel,我想使用一个多嵌套公式来确定a列中的日期是否落在特定的月份/年份中,使用一个公式,例如=if(和(精确(文本(A8,“mmm”),“Jan”,精确(文本(A8,“yyyy”),“2018”),“Y”,“N”) 然而,为了使这个公式在VBA中更具动态性,我想将“Jan”替换为通过弹出式输入框定义的自定义月份,因此 Dim mth As String FormulaR1C1= "=IF(AND(EXACT(TEXT(RC[-2],""mmm"")," & mth & ",EXACT(

我想使用一个多嵌套公式来确定a列中的日期是否落在特定的月份/年份中,使用一个公式,例如=if(和(精确(文本(A8,“mmm”),“Jan”,精确(文本(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(或(精确(文本(A9,“mmm”),一月),“Y”,“N”)

如何修改代码以在输出中获得“Jan”

多谢各位

编辑: 作为字符串的Dim mth mth=“一月”

设置公式范围=范围(“C7:C15”)
FormulaRange.FormulaR1C1=“=IF(AND(AND)(精确)(文本(RC[-2],“mmm”),“&mth&”,精确(文本(A8,“YYYY”),“2018”),“Y”,“N”),

要在VBA中将双引号放在字符串中,必须使用双引号
,即在编写
这意味着该字符串包含一个双引号,因此您的代码应该如下所示:

Dim mth As String
FormulaR1C1 = "=IF(AND(EXACT(TEXT(RC[-2],""mmm""),""" & mth & """),EXACT(TEXT(A8,""YYYY""),""2018""),""Y"",""N"")"

如果我理解正确,您试图检查A列中的日期是否在特定月份,是吗?使用

if MonthName(Month(c.value)) = userInput then
    ...
end if

对于某些单元格c和字符串userInput。根据日期的格式,您可能还需要使用CDate(c.value)。

edit:我尝试使用建议的代码行,但出现应用程序/对象定义错误第一个确切函数缺少一个右括号(在OP中也有)。可能是重复的