這個Excel VBA程式碼是協助我檢查個股的月資料,是否有符合季節性的現象,例如檢查傳產標的是否都在12月份有很大的上漲機率,我利用Excel VBA的Public與Function的功能,使我自編的函數公式可以被Excel 的儲存格運用,從而提升資料處理的效率
另外,個股的月K資料,我是運用券商提供的看盤系統匯出,因此需要避免7、8月的除權除息因素,讀者、用者需要自行留意
Public Function SeasonalTable(ByVal xInput As Range, ByVal yInput As Range, ByVal YYY As Variant, ByVal MMM As Variant) As Variant
'引數、常數、變數、函數...
Dim ii As Variant
Dim xArrRange() As Variant
Dim yArrRange() As Variant
Dim NumData As Variant
xArrRange() = xInput
'Range資料,轉換成陣列資料型態,Google:Excel VBA & Range to ArraysyArrRange() = yInput
NumData = xInput.Count '計算Range內資料個數
For ii = 1 To NumData '注意事項 : 由Range取得資料,陣列索引值起點為1
'透過迴圈,取年份、取月份交集,逐筆求解,對全體資料而言,屬於雙迴圈,n平方的時間複雜度
If Year(xArrRange(ii, 1)) = YYY And Month(xArrRange(ii, 1)) = MMM Then Exit For
Next ii 'For ii = 0 To NumData
SeasonalTable = yArrRange(ii, 1) '函數輸出計算結果
'Debug.Print ii, yArrRange(ii, 1)
End Function