用于确定单元格是否包含特定公式的if语句

我正在编写一个程序,将复制我的整个工作簿,并将其粘贴到一个新的工作簿。

但是我为它复制的每个单元格,如果单元格是一个=CIQ()函数(里面有参数(在2之间,也许多于7))

我希望它粘贴的单元格的值(和格式,但重要性较低,我敢肯定,我可以指出这一部分),但如果该单元格不包含=CIQ()函数,我只想做一个正常的复制和粘贴。

我真的是新来的VBA,所以我想知道什么语法是一个if语句,将确定该单元格是否是一个CIQ()函数或不。

谢谢

下面的代码将用公式的值replace任何以=CIQ开头的公式。

 Sub RemoveCIQ() Dim rng1 As Range Set rng1 = Cells.Find("=CIQ", , xlFormulas, xlPart) Do While Not rng1 Is Nothing rng1.Value = rng1.Value Set rng1 = Cells.Find("=CIQ", , xlFormulas, xlPart) Loop End Sub 

在循环遍历每个单元格时,可以检查公式是否开始“= CIQ”

 If Left(ActiveSheet.Cells(i, j).Formula, 4) = "=CIQ" Then 'Copy value and formatting End If 

我还build议,如果它可以满足您的需求,而不是将每个工作表/单元复制到新的工作簿中,请复制工作簿,然后使用查找来将所有CIQ公式replace为值。 这也可以在VBA中完成:

http://support.microsoft.com/kb/126093