簡體   English   中英

Excel公式 - 檢查單元格是否具有公式

[英]Excel Formula - Check if cell has formula

你用什么公式來檢查另一個細胞是否有配方? 例如,我有2列,A包含包含公式或值的單元格。

(A列通常包含公式,但其他用戶嘗試通過直接鍵入和替換之前的公式來更改其值)

在列BI中,如果列A上的單元格具有公式,則要添加將顯示“HasFormula”的公式,如果它包含值,則表示“PlainValue”。

我想也許使用=ISNUMBER()但這可能不准確。

我正在使用Excel 2010。

Excel實際上有一個內置的ISFORMULA()函數。

A1有一個公式,你想檢查。 在說B1 ,你可以使用:

=If(ISFORMULA(A1),"HasFormula","PlainValue")

編輯:根據您的評論,您沒有ISFORMULA() 另一種方法是創建一個快速UDF,並使用工作表中的自定義函數。

在工作簿模塊中,輸入以下代碼:

Function isFormula(ByVal target As Range) As Boolean
     isFormula = target.hasFormula
End Function

然后你可以這樣調用: =isFormula(A1) ,如果A1有一個公式,它將返回TRUE

如果你不能使用VBA,那么你可以使用這個公式: =IF(ISERROR(FORMULATEXT(A1)),"PlainText","HasFormula")

MrExcel網站(下面的鏈接)有這種方法,它使用Excel 4中的舊代碼(為了向后兼容仍然存在)...

定義一個名稱,如“CellToLeftHasFormula”和“引用”框中

=GET.CELL(48,OFFSET(INDIRECT("RC",FALSE),0,-1))

然后在B列中使用公式= CellToLeftHasFormula,如果有,則返回TRUE。

請注意,這將意味着您的Excel現在將包含一個宏,因此需要保存(xlsm)。 我在Excel 2010中使用它。

有關完整說明(以及其他.CELL選項,除48之外),請參閱MrExcel鏈接: https ://www.mrexcel.com/forum/excel-questions/20611-info-only-get-cell-arguments.html

您可以使用Range.HasFormula屬性。

https://docs.microsoft.com/en-us/office/vba/api/excel.range.hasformula

編輯:

來自以上鏈接的文字和代碼:

“如果范圍中的所有單元格都包含公式,則為true;如果范圍中的所有單元格都不包含公式,則為false;否則為null。只讀變量....”

Worksheets("Sheet1").Activate 
Set rr = Application.InputBox( _ 
    prompt:="Select a range on this worksheet", _ 
    Type:=8) 
If rr.HasFormula = True Then 
    MsgBox "Every cell in the selection contains a formula" 
End If

您可以通過保護列A來限制用戶。

您可以使用快捷鍵Ctrl +`直接檢查單元格是否包含公式。

您可以使用vba並編寫用戶定義的函數:1。按alt + F11 2.在工作簿中插入模塊3.粘貼此代碼

Function IsFormula(cell_ref As Range) 
IsFormula = cell_ref.HasFormula 
End Function

4.現在,在任何地方使用Isformula。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM