Excel 使用宏插入公式
我试图使用宏插入IF公式,但语法似乎不正确。尝试插入引号使我感到困惑,尝试插入“我必须使用” 这是我需要插入的IF函数Excel 使用宏插入公式,excel,vba,Excel,Vba,我试图使用宏插入IF公式,但语法似乎不正确。尝试插入引号使我感到困惑,尝试插入“我必须使用” 这是我需要插入的IF函数 =IF(P14&Q14&R14<>"","<>","") 然而,使用这个插入方法和语法,我得到了一个类型不匹配错误 .Cells(iRow, 3).Value = "=IF(P" + iRow + "&Q" + iRow + &q
=IF(P14&Q14&R14<>"","<>","")
然而,使用这个插入方法和语法,我得到了一个类型不匹配错误
.Cells(iRow, 3).Value = "=IF(P" + iRow + "&Q" + iRow + "&R" + iRow + "<>"""""," + ""<>"",""""")"
.Cells(iRow,3).Value=“=IF(P“+iRow+”&Q“+iRow+”&R“+iRow+”、“+”、”)
有人能告诉我为什么收到类型不匹配错误吗?
谢谢你的帮助 首先,不要将
+
用于串联。使用和。在某些特定情况下,您可能会遇到问题
其次,最好使用.Formula
而不是.Value
公式字符串应为:
.Cells(iRow, 3).Formula = "=IF(P" & iRow & "&Q" & iRow & "&R" & iRow & "<>""""," & """<>"","""")"
.Cells(iRow,3).Formula=“=IF(P”&iRow&“&Q”&iRow&“&R”&iRow&“,”和“,”)
五个“
仅在字符串末尾有意义…四个是现有字符串的两倍,第五个用于字符串终止。您可以使用:
.Cells(iRow, 3).Value = Replace("=IF(PX&QX&RX<>"""",""<>"","""")", "X", iRow)
.Cells(iRow,3).Value=Replace(“=IF(PX&QX&RX“”,”“,”“),“X”,iRow)
在这种情况下,当你说“你必须使用。。。“因为.Value
同样适用于插入公式。不过,如果它更合适的话,我想你是对的=)+@JvdV:我不是说它不起作用!事实上,在这个特定的例子中,使用+
进行连接也会起作用,因为它用于字符串和数字之间,但我只想强调一些培养他编程习惯的干净方法。。。我认为,当尝试调试时,知道您想要做什么是很好的。当然,它看起来也更合适。只是作为参考提过。@JvdV:但是,也许你是对的。我将“必须”改为“一切都好”…我使用宏将许多公式从模板粘贴到工作表。我在模板上有所有公式,前面没有“=”,因此vba&excel将它们视为文本。事实上,“=”被“xyxy”替换,所以一旦粘贴操作完成,我就用“=”查找/替换“xyxy”,并且所有工作都很好地为我工作。。。
.Cells(iRow, 3).Formula = "=IF(P" & iRow & "&Q" & iRow & "&R" & iRow & "<>""""," & """<>"","""")"
.Cells(iRow, 3).Value = Replace("=IF(PX&QX&RX<>"""",""<>"","""")", "X", iRow)