我想使用if
条件来执行ClearContents
任务。请找到我的以下代码。我在下面写了2个代码,但都不成功。
首先尝试
t = 1
Do While Cells(t, 1) <> ""
If Cells(t, 1) <> "=" Then
Cells(t, 1).ClearContents
End If
t = t + 1
Loop
第二次尝试
t = 1
Do While Cells(t, 1) <> ""
If Cells(t, 1) <> Formula Then
Cells(t, 1).ClearContents
End If
t = t + 1
Loop
基本上,我不想删除包含公式可用位置的单元格,但我想删除其他数据。
答案 0 :(得分:4)
作为替代方案,有一种方法可以选择包含常量(非公式)值的所有单元格。
Cells.SpecialCells(xlCellTypeConstants, 23).ClearContents
比迭代所有细胞更快。
要仅针对特定范围或当前选择执行此操作,请将Cells
替换为Range("A1:A100")
或Selection
。
(在Excel中,您可以在Home - &gt; Editing - &gt; Find&amp; Select - &gt; Go to Special。下找到它。在这里,您可以让Excel自动选择现有选择内的常量或公式。)
答案 1 :(得分:0)
写下这样的东西:
If Not Cells(t,1).HasFormula Then
End if
它会起作用。
编辑:
试试这样:
Sub TestMe()
If Not Cells(1, 1).HasFormula Then
Debug.Print "No Formula"
Else
Debug.Print "Has Formula"
End If
End Sub
以下是有关HasFormula属性的更多信息:
https://msdn.microsoft.com/en-us/library/office/ff837123.aspx