簡體   English   中英

用於識別 Excel 單元格的格式模式的 UDF(用戶定義函數)

[英]UDF (user-defined function) to identify the format pattern for an Excel cell

問題:我有一張 Excel 表格,在某些單元格中有圖案,表明存在某種特征。 我需要為每個具有模式的單元格提供一個數字/文本代碼,而不是“無模式/白色”單元格。

應用 function 之前的外觀示例

由於我沒有在 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.

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