花了一段時間,終於使用excel vba開發出來了,希望對自己看盤有幫助,後續配合自動股價更新等功能做及時盤中走勢圖繪製與強弱判斷,加油了。
為何用EXCEL VBA?
因為卷商軟體已有設計好的端口,不利用一下怎可能!!!
其實不透過卷商軟體也很其他方法可以做到看盤資料來源的掌握,但小編很少用卷商軟體的端口,當作練兵摟。
N字走勢判斷是好是壞???:
其實小篇我也正在體驗中,翻了很多網頁說明等等,感覺有趣,就花不少時間把它弄出來了,當玩玩。
喜歡攝影的我,喜歡到處拍拍照,吃點當地的特色食物。 跟朋友聊天之餘,推薦我寫成網誌跟大家分享。 沒外出的日子,喜歡在家當隱性宅,寫程式看看書,追劇。 希望我的手札文,不會讓你翻桌 XD
花了一段時間,終於使用excel vba開發出來了,希望對自己看盤有幫助,後續配合自動股價更新等功能做及時盤中走勢圖繪製與強弱判斷,加油了。
為何用EXCEL VBA?
因為卷商軟體已有設計好的端口,不利用一下怎可能!!!
其實不透過卷商軟體也很其他方法可以做到看盤資料來源的掌握,但小編很少用卷商軟體的端口,當作練兵摟。
N字走勢判斷是好是壞???:
其實小篇我也正在體驗中,翻了很多網頁說明等等,感覺有趣,就花不少時間把它弄出來了,當玩玩。
不知道大家是否有與我相同的困擾,就是設定了也不會做動😖😖
例如在表單上設置了一個COMBOBOX的物件也設定了SETFOCUS,但沒反應就是沒反應!!!!
用UserForm1.ComboBox1.SetFocus 無效 XD
在拜讀此篇Re-Focusing on an Excel Userform ComboBox討論後,以以下CODE 測試成功:
with UserForm1.ComboBox1
.Visible = False '設定為不可使用
.Visible = True '設定為可使用
.setfocus '設定"閃爍 OR 稱焦點也行
end with
在每一次載入表單時,可以將控制權丟到COMBOBOX上或是TEXTBOX上也行,倘若真的不行,還有另外一段CODE,我幫忙補上中文註解:
Sub Focus_ControlOfUserForm(ByRef Obj As Object) 'from the Userform, call Focus_ControlOfUserForm(Me)
Dim ctl As Control
With Obj
Set ctl = .ActiveControl '設定物件別
If TypeName(ctl) = "MultiPage" Or TypeName(ctl) = "Frame" Then '判斷物件種類
Set ctl = ctl.SelectedItem.ActiveControl.Name '重新設定物件別
End If
With ctl
Dim Af As Boolean
With Application
Af = .ScreenUpdating
.ScreenUpdating = False
End With
'.SetFocus
.Visible = False
.Visible = True
.SetFocus
If Af Then Application.ScreenUpdating = True '開啟螢幕更新
End With
End With
End Sub
簡單說明一下,這個副程式透過物件別判斷後,做焦點設定,因為特定物件不支援"焦點";另外關鍵在Application.ScreenUpdating這個控制上,因為有時候物件未自動更新導致的。
excel內建函數,主要是用儲存格做使用,其實也是可以直接拿來在vba中做使用的,在vba使用中若能搭配陣列做使用,效率上更是更上一層樓,先簡單說明在vba中使用的語法
方法一:application.sum(儲存格)
方法二:Application.WorksheetFunction.sum(儲存格)
轉用陣列範例,目前以max舉例,excel內建函數眾多,未一一測試,在請見諒。
單列情況:
Dim a As Variant
a=activesheet.range("a1:a1000")
a_max=application.max(a)
單列情況對照:
Dim a As RANGE
SET a=activesheet.range("a1:a1000")
a_max=application.max(a)
若
多列多行:
Dim a As Variant
a=activesheet.range("a1:c1000")
a_max=application.max(a)
相關係數:
函數是Correl
先宣告TEMP1與TEMP2為儲存格物件
Dim TEMP1, TEMP2 As Range
在設置對應的儲存格
Set TEMP1 = ActiveSheet.Range("A2:A100")
Set TEMP2 = ActiveSheet.Range("B2:B100")
透過 Application.WorksheetFunction.Correl(ARRAY1,ARRAY2)語法作函數呼叫。
T = Application.WorksheetFunction.Correl(TEMP1, TEMP2)
DEBUG.? T
例子:
好長一段時間前寫了迴歸,迴歸含有很多分析變數間關係的工具,如判定係數,相關係數等,剛好最近有機會接觸某國的某股票與台灣股票連動的情況,小編寫了個自動分析工具,一次處理判定係數與相關係數。
以前老師有教,收集到資料時,畫個圖,看一看,比較好懂走勢。簡單取兩張圖:
指數變化(2024.09.27) 上周焦點: 美國房貸綜合指數 9/4 美國失業率 9/6 4.2% 美國非農人數就業人數 9/6 14200 美國核心CPI年增率 9/11 降 2.5% 美國消費者物價指數月增率 9/11 月...