我想通過VBA在excel中創建一個函數,並想知道是否可以在該函數內使用excel內置函數。例如,查找或匹配等功能。我有與VBA &公式的解決方案,但有興趣知道功能是否可以做到這一點。是否可以在由VBA創建的用戶定義或定製函數中使用excel內置函數?
我想創建一個函數,其中VLookup應該只返回第一個找到的項目的值。
'function which can return the Vlookup value only for 1st found value
Function SLOOKUP(Pvalue As Range, Rng As Range, Rng1 As Range, pIndex As Long)
Dim Cvalue As Variant
Dim Mvalue As Long
Dim Uvalue As Long
Dim Result As Variant
Result = ""
Cvalue = Pvalue.Value
Mvalue = Application.Worksheet.Function.Match(Cvalue, Rng, -1)
Uvalue = Pvalue.Row
If Mvalue = Uvalue Then
Result = Application.Worksheet.Function.VLookup(Cvalue, Rng1, pIndex, 0)
Else
Result = 0
End If
SLOOKUP = Result
End Function
的答案是「是」,有一些注意事項/限制(即,特別是UDF是不一般不允許改變環境)。 如果你想要更多的特殊性,你應該包括你想要做什麼,以及你試圖編寫或使用什麼代碼。 –
我已添加代碼。讓我知道你的想法嗎? – user3200076
什麼似乎是問題?有沒有錯誤? –