為了解決一個有1000個欄位的判斷問題,所以使用自訂函數來自動判斷。
但是自訂函數又遇到了另一個問題,也就是沒有辦法自動加號,先看程式碼如下:
Function test01(aa, bb)
a = Cells(aa, bb).Value
test01 = a
End Function
程式碼很簡單,只是如果單純傳入欄號、列號時,下一列無法自動加號,如下圖
(為了顯示公式,所以直接轉成文字)
由上圖可知,公式都是(1,1),而不會自動變成(1,2),(1,3),這樣對於一個有數百列的Excel,要一個一個手動改實在太麻煩了。
還好最後有試出一個方法可以解決這個問題,就是利用標準的公式column與row,這樣終於可以解決問題了。
公式說明如下:
Column是傳回參照位址欄之編號,如COLUMN(B1)傳回2,也就是欄B
Row是傳回參照位址列之編號,如ROW(C2)傳回2,也就是第二列
用這兩個公式就可以將儲存格的參照位址傳入VBA,並享受自動加號的功能。