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

时间:2014-06-06 20:24:11

标签: excel vba excel-vba

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

但是我为它复制的每个单元格,如果单元格是=CIQ()函数(内部有参数(介于2之间,可能超过7))

我希望它能粘贴单元格的值(并且格式化,但重要的是更少,我确定我可以找出那部分),但是如果单元格不包含{{1我希望它只是做一个正常的复制和粘贴。

我对VBA真的很陌生,所以我想知道if语句的语法是什么,它将决定该单元格是否为=CIQ()函数。

由于

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

如下所示的代码将使用公式的值替换以=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