[算表] WorksheetFunction.Vlookup寫入Table參數

作者: home0303 (Blue night)   2018-08-02 09:11:06
軟體:EXCEL
版本:2010
想要自訂一個Moody's信評轉換成S&P信評的函數
Function Rating(Moodys)
Rating = Application.VLookup(Moodys, Range("A:B"), 2, 0)
End Function
上述寫法必須先在工作表的AB欄分別定義好相對應的穆迪與標普評等
但因為是要給大家用的 不能要求大家都有能力定義好AB欄
所以想要將 Range("A:B") 直接在自訂函數中寫死
我知道在儲存格中輸入的VLOOKUP函數可以使用類似
=VLOOKUP(Moodys,{"Aaa","AAA";"Aa1","AA+";"Aa2","AA";"Aa3","AA-"},2,0)
這樣的用法 但要如何將{.....}帶入Range("A:B")是我目前頭痛的地方
想請教 謝謝
作者: soyoso (我是耀宗)   2018-08-02 09:22:00
application.vlookup(moodys,[{"Aaa","AAA";...}],2,0)
作者: home0303 (Blue night)   2018-08-02 10:02:00
原來只差這麼一點 謝謝S大!請問若出現'識別項太長'的問題 有其他解法嗎
作者: soyoso (我是耀宗)   2018-08-02 11:06:00
如無合適的方式解決的話,看以array方式配合工作表函數index和match來回傳
作者: home0303 (Blue night)   2018-08-02 17:10:00
解決了!!謝謝S大

Links booklink

Contact Us: admin [ a t ] ucptt.com