Adding Items
新增下拉式選單的選項
box.AddItem item[, index]
box 該下拉式選單的物件
item 字串
index 放置該新增字串的位置. 0 在最前面,
範例1
ComboBox1.AddItem "A"
ComboBox1.AddItem "B"
ComboBox1.AddItem "C"
範例2
Private Sub CommandButton1_Click()
ComboBox1.AddItem TextBox1.Value, 2
End Sub
Removing Items
刪除下拉式選單的選項
box.RemoveItem index
box 該下拉式選單的物件
index 欲刪除選項的位置. 0 在最前面,
範例
Private Sub CommandButton1_Click()
ComboBox1.RemoveItem 0
End Sub
Clear Items
清空所有選項
box.Clear
範例
Private Sub CommandButton1_Click()
ComboBox1.Clear
End Sub
Getting the value of the currently selected item
取得正選取選項的值
box.value
box.text
box 該下拉式選單的物件
value 該選單選項的值
text 該選單選項的文字
以上兩種方法都可以
範例
方法1
Private Sub CommandButton1_Click()
MsgBox ComboBox1.Text
End Sub
方法2
Private Sub CommandButton1_Click()
MsgBox ComboBox1.Value
End Sub
Getting List Items with the List Property
box.List(index)
box 該下拉式選單的物件
index 欲取得選項的位置. 0 在最前面,
範例
Private Sub CommandButton1_Click()
MsgBox ComboBox1.List(0)
End Sub
Returning the Number of Items with the ListCount Property
box.ListCount
box 該下拉式選單的物件
範例
Private Sub CommandButton1_Click()
MsgBox ComboBox1.ListCount
End Sub
2020年2月25日 星期二
VB字串 常用處理函數
Len:計算字串的長度。
範例:strLen=Len("Taiwan")
結果:6
Mid:依開始位置擷取固定長度字串。
範例:strLen=Mid("Taiwan",1,2)
結果:ai
Left:將字串由左側擷取固定長度。
範例:strLen=Left("Taiwan",2)
結果:Ta
Right:將字串由右側擷取固定長度。
範例:str=Right(" Taiwan ",2)
結果:an
Lcase:將字串中的大寫字母轉成小寫。
範例:str=Lcase("Taiwan")
結果:taiwan
Ucase:將字串中的小寫字母轉成大寫。
範例:str=Ucase("Taiwan")
結果:TAIWAN
Trim:刪頭尾空白
範例:str=Trim(" Taiwan ")
結果:Taiwan
Ltrim:刪字串左側的空白
範例:str=Ltrim(" Taiwan ")
結果:Taiwan
Rtrim:刪字串右側的空白
範例:str=Rtrim(" Taiwan ")
結果: Taiwan
Replace:將字串中的某字串,以另一字串代替。
範例:str=Replace("Taiwan","Tai"," Nan ")
結果:Nanwan
Instr:傳回子字串在字串中的第一次出現位置。
範例:strLen=Instr("ABCabc","a")
結果:1
Space:產生指定個數空白。
範例:Space(10)
結果:10個空白
String:產生指定個數的字元。
範例:str=String(5,"$")
結果:$$$$$
範例:str=String(4,66)
結果:BBBB
StrReverse:將字串前後反轉。
範例:str=StrReverse(" Taiwan ")
結果:nawiaT
Split:字串分割
範例:str=Split("Taiwan","T")
結果:
str(0)="T"
str(1)="aiwan"
StrComp:字串比較
範例:
str1=StrComp("Taiwan","Tai")
str2=StrComp("Taiwan","wan")
str3=StrComp("Taiwan","Taiwan")
結果:
str1=1
str2=-1
str3=0
範例:strLen=Len("Taiwan")
結果:6
Mid:依開始位置擷取固定長度字串。
範例:strLen=Mid("Taiwan",1,2)
結果:ai
Left:將字串由左側擷取固定長度。
範例:strLen=Left("Taiwan",2)
結果:Ta
Right:將字串由右側擷取固定長度。
範例:str=Right(" Taiwan ",2)
結果:an
Lcase:將字串中的大寫字母轉成小寫。
範例:str=Lcase("Taiwan")
結果:taiwan
Ucase:將字串中的小寫字母轉成大寫。
範例:str=Ucase("Taiwan")
結果:TAIWAN
Trim:刪頭尾空白
範例:str=Trim(" Taiwan ")
結果:Taiwan
Ltrim:刪字串左側的空白
範例:str=Ltrim(" Taiwan ")
結果:Taiwan
Rtrim:刪字串右側的空白
範例:str=Rtrim(" Taiwan ")
結果: Taiwan
Replace:將字串中的某字串,以另一字串代替。
範例:str=Replace("Taiwan","Tai"," Nan ")
結果:Nanwan
Instr:傳回子字串在字串中的第一次出現位置。
範例:strLen=Instr("ABCabc","a")
結果:1
Space:產生指定個數空白。
範例:Space(10)
結果:10個空白
String:產生指定個數的字元。
範例:str=String(5,"$")
結果:$$$$$
範例:str=String(4,66)
結果:BBBB
StrReverse:將字串前後反轉。
範例:str=StrReverse(" Taiwan ")
結果:nawiaT
Split:字串分割
範例:str=Split("Taiwan","T")
結果:
str(0)="T"
str(1)="aiwan"
StrComp:字串比較
範例:
str1=StrComp("Taiwan","Tai")
str2=StrComp("Taiwan","wan")
str3=StrComp("Taiwan","Taiwan")
結果:
str1=1
str2=-1
str3=0
VBA 基本語法
EXCEL常用的物件:
Workbook 活頁簿
Workbooks 活頁簿集合
Workbooks("filename") 檔名為filename的活頁簿
ActiveWorkbook 正在作用中的活頁簿
Sheets 活頁簿中所有工作表
Sheets(n) 活頁簿中第n張工作表
Worksheet 工作表
Worksheets 所有工作表(包括圖表)
Worksheets("sheet") 指表名為sheet工作表
ActiveSheet 正在作用中的工作表
Columns("c1:c2") c1至c2欄
(其中c1,c2為A~Z或AA~XFD等欄名)
Rows("r1:r2") r1至r2列
(其中r1,r2為1~1048576等列名
Range("x1:x2") x1至x2間的儲存格
(其中x1,x2為儲存格位址名稱)
cells(i,j) 儲存格(第i列、第j行)
ActiveCell 目前的儲存格
Selection 目前所選取的物件
範例:
Workbooks("Book1").Sheets("Sheet1").Range("A1:D5").Font.Bold = True
Worksheets("Sheet1").Cells.ClearContents
Worksheets("Sheet1").Rows(1).Font.Bold = True
Range("1:1,3:3,8:8")
Worksheets("Sheet1").Cells(6, 1).Value = 10
Worksheets("Sheet1").[A1:B5].ClearContents
ActiveCell.Offset(1, 3).Font.Underline = xlDouble
活頁簿常用屬性:
ActiveWorkBook.Name 目前活頁簿的名稱
ActiveWorkBook.Save 儲存目前的活頁簿
ActiveWorkBook.SaveAs Filename := "filename" 另儲新檔
WorkBooks.Add 新增活頁簿
WorkBooks(i).Close [SaveChange, Filename, RouteWorkbook] 關閉指定的第i個活頁簿
SaveChange := True 改變儲存
SaveChange := False 不會改變儲存
SaveChange省略時,會出現對話方塊
filename := "檔名"
WorkBooks.Open "filename" 開啟一個活頁簿
Application.Windows 所有活頁簿視窗
WorkBooks.Count 活頁簿的數量
WorkBooks.Item(Index) 傳回單一活頁簿,由索引值指定
工作表常用屬性:
Worksheets.Add [Before, After, Count, Type] 新增工作表
Before := Worksheets(n) 出現於某工作表之前
After := Worksheets(n) 出現於某工作表之後
Count := n 新增工作表數量
Type := xlWorksheet (工作表) 或 xlChart (圖表)
WorkSheets.Name 工作表名稱
WorkSheets("Sheet1").Activate
設定工作表為目前作用的功作表
儲存格常用屬性:
Rows.RowHeight 指定範圍內的所有列高
Columns.ColumnsWidth:指定範圍內的所欄寬
expression.NumberFormatLocal 以本地的數字格式
Range.CurrentRegion 目前區域
是指以任意空白列及空白欄的組合為邊界的範圍
範例:
Worksheets("Sheet1").Activate
ActiveCell.CurrentRegion.Select
expression.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)
以參照的方式
RowAbsolute 為True,則用列的絕對位址
ColumnAbsolute 為True,則用欄的絕對位址
ReferenceStyle 預設值為xlA1,
如為xlR1C1則為R1C1的表達方式
expression.count 傳回範圍的數量
(可以是欄數、列數或儲存格數量)
expression.Item(RowIndex, ColumnIndex)
代表相對於指定之範圍某個位移距離的範圍。
expression.value 傳回或設定物件的值
expression.Formula 傳回或設定物件的公式,
代表 A1 樣式註解以及巨集語言中的物件公式。
範例:
Worksheets("Sheet1").Range("A1").Formula = "=$A$4+$A$10"
expression.FormulaR1C1 傳回或設定物件的公式,
並以巨集語言中的 R1C1 樣式標記法表示
範例:
Worksheets("Sheet1").Range("B1").FormulaR1C1 = "=SQRT(R1C1)"
expression.Text 傳回或設定物件的文字
範例:
Set c = Worksheets("Sheet1").Range("B14")
c.Value = 1198.3
c.NumberFormat = "$#,##0_);($#,##0)"
MsgBox c.Value
MsgBox c.Text
常用方法:
Range.Select方法/Selection屬性
設定目前選取的範圍/使用目前所選取的範圍
範例:
Sub Macro1()
Sheets("Sheet1").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = "Name"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Address"
Range("A1:B1").Select
Selection.Font.Bold = True
End Sub
expression.Copy 將目前所選取的物件復製至剪貼簿
expression.Cut 將目前所選取的物件剪下
expression.Delete 將目前所選取的物件刪除
expression.Paste 將剪貼簿的內容貼上
範例:
Sub CopyRow()
Worksheets("Sheet1").Rows(1).Copy
Worksheets("Sheet2").Select
Worksheets("Sheet2").Rows(1).Select
Worksheets("Sheet2").Paste
End Sub
expression.RasteSpecial(Paste,Operation, SkipBlanks, Transpose)
範例:
With Worksheets("Sheet1")
.Range("C1:C5").Copy
.Range("D1:D5").PasteSpecial _
Operation:=xlPasteSpecialOperationAdd
End With
Range.Activate 目前的儲存格
Range.Clear 清除資料
Range.ClearContents 清除資料內容
Range.ClearFormats 清除資料格式
Range.ClearComments 清除註解
expression.AutoFit:自動調整列高和欄寬
Range.FillDown、Range.FillUp、Range.FillLeft、Range.FillRight 填滿
Range.Offset (RowOffset, ColumnOffset) 指定區域的位移列與行
範例:
Sub MoveActive()
Worksheets("Sheet1").Activate
Range("A1:D10").Select
ActiveCell.Value = "Monthly Totals"
ActiveCell.Offset(0, 1).Activate
End Sub
程式語法:
Dim 陳述式(變數)
Dim varname [ As [New] type]
type 包括 Byte、Boolean、Integer、Long、Single、Double、Date、String、Object等
Set 陳述式(物件)
Set objectvar = {[New] objectexpression | Nothing}
例:Set RangeA = Range("A1:B2")
範例:
Sub Random()
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A1:D5")
myRange.Formula = "=RAND()"
myRange.Font.Bold = True
End Sub
With 多種屬性設定
With 物件
.屬性1 = 設定值
.屬性2 = 設定值
.... End With
範例:
Sub AddNew()
Set NewBook = Workbooks.Add
With NewBook
.Title = "All Sales"
.Subject = "Sales"
.SaveAs Filename:="Allsales.xls"
End With
End Sub
Array 陣列
Array(Range1, Range2, ....)
範例:
Sub Several()
Worksheets(Array("Sheet1", "Sheet2", "Sheet4")).Select
End Sub
InputBox 函數
InputBox("文字說明",[,title][,default][,xpos][,ypos][,helpfile, context])
MsgBox 函數
MsgBox "文字說明"
Union 將多個範圍合併成單一Range物件
Union(Range1, Range2, ...)
範例:
Sub MultipleRange()
Dim r1, r2, myMultipleRange As Range
Set r1 = Sheets("Sheet1").Range("A1:B2")
Set r2 = Sheets("Sheet1").Range("C3:D4")
Set myMultipleRange = Union(r1, r2)
myMultipleRange.Font.Bold = True
End Sub
For... Next 陳述式
For counter = start to end [ step stepvalue]
[statements]
[Exit For]
[statements]
Next [counter]
範例:
Sub CycleThrough()
Dim Counter As Integer
For Counter = 1 To 20
Worksheets("Sheet1").Cells(Counter, 3).Value = Counter
Next Counter
End Sub
For Each... Next 陳述式
For Each element In group
[statements]
[Exit For]
[statements]
Next [element]
範例:
Sub ApplyColor()
Const Limit As Integer = 25
For Each c In Range("MyRange")
If c.Value > Limit Then
c.Interior.ColorIndex = 27
End If
Next c
End Sub
Do ... Loop 陳述式
Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop
或
Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]
If ... Then ... Else ... 陳述式
If condition Then [statements][Else elsestatements]
或
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements]...
[Else
[elsestatements]]
End If
2020年1月28日 星期二
下載網頁影片
1. 開啟Google Chrome或是Chromium核心的Edge,連到你想要下載的影片頁面;影片預設會自動播放,這時候要按暫停。
2. 在影片旁邊空白的地方按一下滑鼠右鍵,點選下拉選單中的「檢查」。
3. 這時Chrome右邊會出現網頁檢查選項,切換至「Network」標籤,然後按下鍵盤上的「F5」鍵重新刷新網頁。
4. 按了鍵盤上的「F5」之後,下方就會跑出一堆數據;仔細尋找「Type」形式為「media」的那一行,然後在那一行按兩下滑鼠左鍵。
5. 在「media」那行按兩下滑鼠左鍵後,影片就會以新的分頁開出;在影片旁邊空白的地方按一下滑鼠右鍵,點選下拉選單中的「另存新檔」,指定你想儲存的位置。
6. 如果使用Chrome的話左下方會突然出現一個警告,寫著「這個檔案並不安全,因此遭到Chrome封鎖」;別緊張,這只是例行性警告,先按一下右邊的「全部顯示」。
7. 按一下「保留不安全的檔案」。
8. 再次跟你確認是否真的要保留檔案,勇敢地給他按「保留」就對了,之後影片檔就會被下載回來。
2. 在影片旁邊空白的地方按一下滑鼠右鍵,點選下拉選單中的「檢查」。
3. 這時Chrome右邊會出現網頁檢查選項,切換至「Network」標籤,然後按下鍵盤上的「F5」鍵重新刷新網頁。
4. 按了鍵盤上的「F5」之後,下方就會跑出一堆數據;仔細尋找「Type」形式為「media」的那一行,然後在那一行按兩下滑鼠左鍵。
5. 在「media」那行按兩下滑鼠左鍵後,影片就會以新的分頁開出;在影片旁邊空白的地方按一下滑鼠右鍵,點選下拉選單中的「另存新檔」,指定你想儲存的位置。
6. 如果使用Chrome的話左下方會突然出現一個警告,寫著「這個檔案並不安全,因此遭到Chrome封鎖」;別緊張,這只是例行性警告,先按一下右邊的「全部顯示」。
7. 按一下「保留不安全的檔案」。
8. 再次跟你確認是否真的要保留檔案,勇敢地給他按「保留」就對了,之後影片檔就會被下載回來。
2019年5月26日 星期日
一目均衡表
一目均衡表指標
是由日本人 一目山人在1940年代發明。
是由日本人 一目山人在1940年代發明。
K線如果長期處於 雲帶上方,雲帶具有支撐作用
當K線與雲帶接觸,表示指數回測支撐
如果撐住了,指數將在多頭排列的趨勢下繼續創新高。
直到K棒跌破雲帶,就表示支撐失敗,波段將可能反轉。
反之,K線如果長線處於雲帶下,就會面臨壓力
順著空頭排列,履創新低。
一目均衡表由每日的K線(價格線),
5條(快慢遲AB)移動線及1個阻抗帶(雲)所構成。
解讀其間關係可瞭解市場的強弱,可得出買賣信號。
一目均衡圖由短中長三個 (x,y,z) 時間參數,
計算五個指標值組成如下:
短軸快線,(轉換線) =(x期間最高高點 + x期間最低低點) / 2
中軸慢線,(基準線) = (y期間最高高點 + y期間最低低點) / 2
遲行線,(遲行線) = 今天的收盤價格,畫在過去 y 期處
先行指標A, (先行帶A)= (轉換線 + 基準線) / 2,畫在未來 y 期處
先行指標B, (先行帶B)= (最高高點 + 最低低點) / 2,取過去 z 期間,畫在未來 y 期處
Kumo 是指雲(阻抗帶)= Senkou Span A 和 Senkou Span B 之間的空間。
【參數】通常以(9, 26, 52)為短中長期的值:
轉換線 = 短軸快線 = (9日最高+9日低)/2。
基準線 = 中軸慢線 = (26日最高+26日最低)/2。
遲行線 = 今日收盤價往(過去)前市平移一個中線周期(26日);當天價格與26天前的乖離率。
先行指標A = 先行帶A = (短軸快線+中軸慢線)/2,
畫在往(未來)後市挪移一個中線周期的位置。
先行指標B = 先行帶B = (52 日最高+52日最低)/2,
畫在往(未來)後市挪移一個一長線周期的位置。
雲帶(阻抗帶)= 先行指標A與先行指標B之間的空間。
1、買入信號:
價格線位於雲的上方;
價格線在基準線之上推移(基準線成為下降支撐);
轉換線在基準線的上方推移(超強勢的情況下,價格線在轉換線上方推移);
遲行線Chinkou向上越過價格線。
2、賣出信號:
價格線在雲的下方;
價格線在基準線的下方推移(反彈只到轉換線的位置,難以反彈到基準線);
轉換線在基準線的下方推移(降勢明顯的情況下,價格線在轉換線的下方推移);
遲行線Chinkou向下跌破價格線。
3、調整期
A、由上升轉為下降的調整:
價格線開始由上方進入雲帶;
價格線下穿基準線;
轉換線在基準線之下停留;
遲行線開始下穿價格線。
B、由下降轉為上升的調整:
價格線開始站在基準線的上方;
轉換線上穿基準線;
遲行線Chinkou上穿價格線;
價格線由下方進入雲帶,最終上穿雲帶;
遲行線Chinkou穿出雲的上方。
4、一目均衡表的其它特徵
市場遠離雲帶表示趨勢走強,不易觸及雲的邊線;
穿透轉換線時,意味著可能出現調整;
始終未穿透基準線的市場,一旦穿透時,意味較大調整可能;
價格在基準線下方,為弱勢;上方為強勢。
【基準線】
中期屢創新高或低點迭升,則基準線走揚;
中期屢創新低或高點跌降,則基準線走低。
基準線線往上,為買進信號;
基準線由往下,為賣出信號。
價格在基準線上面,為多頭趨勢;
價格線和基準線交叉,表示趨勢反轉。
【轉換線】
價格在基準線下方,為弱勢;上方為強勢。
價格從低下穿越基準線時,走勢將轉為上升,反之轉為下降走勢。
看轉換線的同時,一定要參考基準線。
轉換線若往上或往下,代表市場趨勢往上往下。
當轉換線往水平方向移動時,表是明市場進入盤整。
轉換線和基準線用來判斷是有趨勢的市場還是振盪市場。
如果這兩個線之一橫著在走,我們就可以判斷是振盪市場,不宜交易。
轉換線被用來作為反轉線來判斷趨勢。
轉換線和基準線交叉構成買/賣訊號
轉換線向上穿過基準線- 買進訊號。
轉換線向下穿過基準線- 賣出訊號。
【雲帶】
中長期上升趨勢時,價位上穿雲帶是必須條件;
中長期下降趨勢時,價位下穿雲帶是必須條件。
留意先行線A與先行線B之間交叉的地方。
雲帶是由兩條線形成的:先行線A和先行線B。
這兩條線相交叉的地方,叫“交叉點”,這是雲帶的另一個參考點。
價格位於雲彩之上:上升趨勢
價格位於雲彩之下:下跌趨勢
價格位於雲彩內部: 橫盤趨勢
當價格在經過雲帶交叉點時,一般來說,市場會出現有較大的波動。
雲帶變薄的地方,說明買賣力量趨於均衡,市場易出現劇烈波動。
【遲行線】
遲行線應運用在長期趨勢的判斷上。
遲行線為一目均衡表的最重要的部分。
當遲行線上穿價格線是買入信號,遲行線下穿價格線是賣出信號。
價格在雲上,先行帶A是第一支撐,第二條先行帶B是第二相對支撐
價格在雲下,先行帶B是第一阻力,第二條先行帶B是第二相對阻力
價格在先行帶雲間,我們不在雲內交易。
先行帶的上下軌就是支撐和阻立。
2019年3月30日 星期六
使用LINE Notify做即時播報
使用LINE Notify個人存取權杖
不須登錄網站服務,直接設定通知。
我們的DDE已經把連接相關指令都寫入VBA
只需要用你的 LINE 帳號登入
就可以完成群組或個人的播放
1、首先 進入LINE Notify首頁 登入你的帳號
https://notify-bot.line.me/zh_TW/
6、最後 你只要將這組權杖編碼 貼到DDE裡就完成了
至於播報範圍/方式/型態 上課時再做說明......
不須登錄網站服務,直接設定通知。
我們的DDE已經把連接相關指令都寫入VBA
只需要用你的 LINE 帳號登入
就可以完成群組或個人的播放
1、首先 進入LINE Notify首頁 登入你的帳號
https://notify-bot.line.me/zh_TW/
2、點選 個人頁面
3、點選發行權杖
4、選鑿播報目的群組 輸入一個播報名稱
5、接著你就可以得到一組權杖編碼
請按複製儲存下來就可離開頁面
6、最後 你只要將這組權杖編碼 貼到DDE裡就完成了
至於播報範圍/方式/型態 上課時再做說明......
2019年3月6日 星期三
全多賺 手動換倉說明
每周手動更新有2處
每月手動更新有2處
1、周選擇權 (WOP)
全多賺周選代碼:範例 WTX2H9
周數字【1】= 第1周
周數字【2】= 第2周
周字母【O】= 第3周(第三周合併為月選)
周數字【4】= 第4周
周數字【5】= 第5周(偶爾會有5周)
2、周小台 (每周更新)
全多賺周小台代碼:
WMT1H9......(1=第1周,H=3月 9=2019)
WMT2H9......(2=第2周,H=3月 9=2019)
WMTH9......(第3周同小台指 H=3月 9=2019)
WMT4H9......(4=第4周,H=3月 9=2019)
WMT5H9......(5=第5周,H=3月 9=2019)(偶爾會有5周)
3、月選擇權 (OP)
全多賺月選代碼:範例 WTXOH9
字母【O】= 月選代碼
數字【9】= 年份代碼2019
字母【F】= 1月份代碼
字母【G】= 2月份代碼
字母【H】= 3月份代碼
字母【J】= 4月份代碼
字母【K】= 5月份代碼
字母【M】= 6月份代碼
字母【N】= 7月份代碼
字母【Q】= 8月份代碼
字母【U】= 9月份代碼
字母【V】= 10月份代碼
字母【X】= 11月份代碼
字母【Z】= 12月份代碼
4、樂透 (每月更新,季月分為 3/6/9/12)
樂透開倉月份有6檔 3月+3季
WTX&......(&=連續月當月,不用更改)
WTX@......(@=連續月次月,不用更改)
WTXMK9......(次月+1,例如次月為4月,這裡就是5月)
WTXMM9......(開倉月份之下一季,前三月為3/4/5,這裡就是6月)
WTXMU9......(上一季+1季月,例如上一季為6月,這裡就是9月)
WTXMZ9......(上一季+1季月,例如上一季為9月,這裡就是12月)
P.S. 樂透加M是日盤,不加M是全日盤,
因為日盤才有全部月份樂透,全日盤只留連續月接收數據
因為日盤才有全部月份樂透,全日盤只留連續月接收數據
訂閱:
文章 (Atom)