我正在尝试编写一个程序来复制我的整个工作簿并将其粘贴到新工作簿中。
但是我为它复制的每个单元格,如果单元格是=CIQ()
函数(内部有参数(介于2之间,可能超过7))
我希望它能粘贴单元格的值(并且格式化,但重要的是更少,我确定我可以找出那部分),但是如果单元格不包含{{1我希望它只是做一个正常的复制和粘贴。
我对VBA真的很陌生,所以我想知道if语句的语法是什么,它将决定该单元格是否为=CIQ()
函数。
由于
答案 0 :(得分:2)
当您循环遍历每个单元格时,您可以检查公式是否以“= CIQ”
开头If Left(ActiveSheet.Cells(i, j).Formula, 4) = "=CIQ" Then
'Copy value and formatting
End If
答案 1 :(得分:0)
我还建议,如果它能满足您的需求,而不是将每个工作表/单元格复制到新工作簿中,请复制工作簿,然后使用find将所有CIQ公式替换为值。这也可以在VBA中完成:
答案 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