2021年2月28日 星期日

VBA:作二維條碼(GOOGLE 大神 版 QRCODE)

再做成這個作品之前,也翻過網路相當多的文章,大多以ACCESS的元件做成Qr Code的條碼圖案(條碼標籤;也有人這樣稱呼),所以各位網友若你是單機使用,現在可以考慮離開此頁面了,因為筆者此一作品需要存取網路資源的才可以做成Qr Code的條碼圖案。


一、目的:

我自己上課教學使用範例。

二、系統分析:

輸入:轉換為條碼原始資料,在此以逗號方式做區分。

處理:透過google 線上api做處理

輸出:對應條碼原始資料之Qr Code條碼

三、作品實現:

表單與相關欄位設計:

sheet1:於a1儲存格 作標題"資料輸入(以逗號作分割):",於b1儲存格作輸入資料的欄位。

a.建立一個ACTIVEX 命令按鈕,並使用Click作物件觸發,增加如c 的程式碼。

b.物件:CommandButton,建立在工作表表名sheet1

c.VBA 程式碼:主要以Pictures.Insert方法從網路插入條碼圖案

Private Sub CommandButton1_Click()

     Dim p As Object    

     Picture_Link = "https://chart.googleapis.com/chart?chs=250x250&cht=qr&chl=" 

 '250*250為條碼圖案尺寸大小     

     Target_Cell = Sheets("SHEET1").Range("B1")  

     Set p = Sheets("SHEET1").Pictures.Insert(Picture_Link & Target_Cell ) 

     Set p = Nothing        

End Sub

2021年2月21日 星期日

2021櫻木花道+沒油了

 










若大家跟我一樣,記得到下巴的蘇樂機車行找老闆幫忙,一加侖200,95無鉛汽油,加完油別急,若油表沒上來,記得多買點油 XD。
現在多了很多攤販,其實跟2~3年前不太一樣了。嘆氣~~







外包:美股收盤價資料收集

某外包網的接案,因為有商業行為存在,不方便分享CODE,分享截圖與整體程式碼執行流程圖。

  
圖1.操作頁面



圖2.執行結果


圖3.執行結果(作業時間)
圖4.流程圖






2021年2月14日 星期日

VBA:取得最後一列跟最右一行

整理資料時,不免要判斷資料數量,在判斷資料時,資料有時會有不連續與連續資料,這時候判斷方式不盡相同 

連續資料時:

a行於65000儲存格以前的最後列,有點饒舌;應該是這樣看,從a65000往上找(xlup),找到的第一個儲存格,也相對於是a行在65000列之前最後一列。

END_ROW =activesheet.Range("a65000").End(xlUp).Row

第1列最右手邊的行別,透過Columns.Count取的最後一行後,往第一列的最左邊取得行別。

S2 =activesheet.Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column

不連續資料時:

application.counta(儲存格範圍)

儲存格範圍:a:a、1:1類似這樣。

股票:每日買賣進出明細表

這功能,之前小編研究股票時,不是特別重視 ,過年有次機會看到youtube影片某理財影片講的超神,就手癢玩玩起這個了。

最早整理:


圖1.
如圖1.最早小編是整理成圖1這樣,看每日買賣張數,以及占當日交易量的比例。

圖2.
例外也跟外資,投信跟、自營商做做比較(自營商因版面關係就沒截圖了)
圖3.
圖3是一張當天收盤股價跟交量的資料圖,2/5當天為6319張,對照圖1的單日合計買超張數2537,約占比40%;如圖1.可以點選超連結,直接看原始資料如圖4.
圖4.
說明:卷商來源
圖5.
說明:透過卷商系統操作可以得到以上如圖5的資料。
但小編感覺資料不夠完整,畢竟這也才一天的資料,或是點選圖4跟圖5的連結後,一間一間找嗎?跟當初看youtube影片似乎有點貌似神離,所以來改寫吧!


第二版:

過年小編利用這次過年時間,蹲在電腦前面,終於~~

圖6.
小編彙整了2021/2/5~2019/9/19的前15名買賣資料。
圖7.
再根據卷商別,做加總、買進與張數等等的資料彙整(賣出亦比照辦法)
說明:透過這樣整理,小編可以推估,推估主力買的平均成本是多少,以及是那些小卷商再慢慢買進。
第三版:
感覺僅有整理每天前15名還不夠,決定整理每一天每一個眷商的資料,比較乾脆。
又再次改寫程式。
圖8.
說明:小編以2020/9/1開始彙整,傻眼!居然有7萬多筆資料,這很不營養,完全無法閱讀。

圖9.第三版整理

圖10.買進賣出與買賣總額組合圖

終於完成了,終於有一點參考價值了。

VBA技術要點:
爬蟲自動化:
A:自行設定網址
With CreateObject("Microsoft.XMLHTTP")
    .Open "get", A, False 
    .send
END With 
再透過split、replace針對初級資料做再整理。

資料整理自動化:
Range.AdvancedFilter是一個很實用的資料篩選與整理方法歐

2021年2月3日 星期三

VBA:移除重複(RemoveDuplicates)

                          

MSDN:RemoveDuplicates 

N = Sheets("SHEET1").Range("A" & "65536").End(xlUp).Row

Dim myRange As Range

 Set myRange = Sheets("SHEET1").Range("A1:o" & N)

 myRange.RemoveDuplicates Columns:=Array(1), Header:=xlYes

設定好儲存格範圍(Set myRange),就可以執行了,另外兩個參數如下:

Columns:Array(1),A到O行的A行當重複判斷基準。

Header:xlYes,有標題

2021年2月2日 星期二

VBA:排序;SORT

 這超級常被使用到的。

完整參數參MSDN:SORT

一般資料排序:降/升:xlDescending/xlAscending

    A_COUNT = ACTIVESHEET.Range("A2000").End(xlUp).Row

    ActiveSheet.Range("A1:Z" & A_COUNT).Sort Key1:=ActiveSheet.Range("A1"), Order1:=xlDescending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _

    :=xlStroke, DataOption1:=xlSortNormal



顏色排序:

MSDN有提供一個例子,小編以MSDN的例子做說明;首先 把C行對應儲存格的顏色代號(ColorIndex;沒顏色則為-4142),都列出後,標上標題(名稱為index),再用C行的數字做排序完成後,在清除C行資料。


這MSDN的這個方法有很多好處歐,因為一般手動顏色排序都是一個 KEY值指定一種顏色,要多顏色實在是要設定很多(有興趣可以自己錄錄巨集,CODE會很嚇人),真要說缺點就是要多一行做資料存放。

2021年2月1日 星期一

股票:外資連買5天個股(110/2/1為止)

 

如題:

圖1.
說明:累積至2021/2/1為止。
發現含有車用電子概念股:2379、2441、3529、5289