[英]UDF (user-defined function) to identify the format pattern for an Excel cell
問題:我有一張 Excel 表格,在某些單元格中有圖案,表明存在某種特征。 我需要為每個具有模式的單元格提供一個數字/文本代碼,而不是“無模式/白色”單元格。
由於我沒有在 Excel(或一般情況下)中編寫 VBA 函數的經驗,因此我嘗試生成一個 UDF,當單元格具有任何模式時,它只會提供代碼。 這個想法是在單元格中編寫一個公式,例如:=IntPattern(A1),它將返回單元格 A1 的模式代碼。
我嘗試實現的代碼如下:
Function IntPattern(Pattern As Range)
Application.Volatile
IntPattern=Interior.Pattern
End Function
但是,它不起作用。
任何幫助將不勝感激!
臨界線應該是
IntPattern = Pattern.Interior.Pattern
困惑是您自己造成的:您為什么將范圍稱為“模式”? 這是您想要的模式的范圍。 因此,必須在說明中指定。
從具有類似=IntPattern(A2)
的單元格調用 function ,其中 A2 是從中讀取模式的單元格。 它可以是包含公式的單元格或任何其他單元格。
如果引用的單元格沒有圖案,則返回xlNone
= -4142。 因此,您的 UDF 的功能可以擴展為,
Function IntPattern(Pattern As Range)
With Pattern.Interior
IntPattern = IIf(.Pattern = xlNone, "No pattern", "Pattern " & .Pattern)
End With
End Function
如果需要該功能,可以添加Application.Volatile
。
function 需要在模塊中才能工作。 右鍵單擊您的項目,添加一個新模塊並粘貼下面的代碼。 另外,我不會使用 Pattern 這個詞作為變量,因為 pattern 是一個屬性。 嘗試這個:
Public Function IntPattern(rng As Range)
Application.Volatile
IntPattern = rng.Interior.pattern
End Function
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.