僅供參考不作為投資理財規劃。
喜歡攝影的我,喜歡到處拍拍照,吃點當地的特色食物。 跟朋友聊天之餘,推薦我寫成網誌跟大家分享。 沒外出的日子,喜歡在家當隱性宅,寫程式看看書,追劇。 希望我的手札文,不會讓你翻桌 XD
2022年4月30日 星期六
VBA:取消篩選(Autofilter、AdvancedFilter )
執行c_3 副程式即取消篩選狀態
Sub C_3() '篩選與復原
Dim ws As Worksheet
Set ws = ThisWorkbook.ActiveSheet
With ws
If .FilterMode Then
.ShowAllData
End If
End With
Set ws = Nothing
End Sub
2022年4月28日 星期四
記錄:用VBA 彙整三大法人交易日報表
小編無聊之作
網路一堆教學文了,方法也超多,如WORKBOOKS.OPEN、QueryTables或其他方式,
小編就不獻醜了;看看動作片就好。
主要關鍵在於亂碼處理,與資料正規化。
流程:跑網路>亂碼>資料正規化>寫入資料>自動另存新檔
也非用QueryTables做法,QueryTables用多了,有點 BUG 哈。
主要透過MSXML2來處理網路資料為主。
影片:(忘了處理排版 XD)
2022年4月27日 星期三
2022年4月26日 星期二
VBS GetObject 2個簡單例子、儲存格寫資料、call 副程式
GETOBJECT:
簡單例子:
VBS檔,可以直接用記事本編輯歐,記得副檔名要用.VBS而已
先設置ExcelObj 為"Excel.Application"物件,小編透過活頁簿1做DEMO所以檔案名稱跟工作表名稱與儲存格都要設定,跑完程式記得要釋放歐。
,Set ExcelObj = GetObject(, "Excel.Application")
ExcelObj.Workbooks("活頁簿1.xlsm").Sheets("工作表1").Range("b1") = 1
Set ExcelObj = Nothing
延伸:
增加一個
Set ExcelObj = GetObject(, "Excel.Application")
ExcelObj.Workbooks("DEMO").Sheets("s").Range("b2:l2")=1
ExcelObj.Workbooks("DEMO").Sheets("s").Range("o2") =10
'驅動目標工作簿TEST副程式,並傳送數字資料2
ExcelObj.Application.Run "TEST",2 '目標工作簿的mobule做副程式驅動
Set ExcelObj = Nothing
怪的是office365 ok,但office 2010 faile,有空再測試2013
下一篇 Creatobject
2022年4月24日 星期日
VBA:寫CSV檔案遇到資料有逗號怎辦??
因為需要,小編透過Scripting.FileSystemObject做了一個寫CSV的模組,沒有用純文字檔處理的方式:
VBA CODE:
以上
主要是寫入資料>檢查有無重複>有刪除/無寫入新檔>DONE
為避免單一次寫入資料過大,透過迴圈逐行寫入。
後來發現資料中會帶逗號,思考兩條路。
1.不要寫CSV,因為CSV就是用逗號區分資料的 ,用其他格式然後給EXCEL讀檔這樣???
2.直寫EXCEL檔案,因為用CSV主要目的是給EXCEL用,就直接寫EXCEL八
定案方案2直接衝:
VBA CODE
以上2022年4月18日 星期一
2022年4月17日 星期日
2022年4月15日 星期五
vba 刪除檔案方法不愛 KILL
懶人用法kill :
語法很簡單就是 KILL +檔案路徑+完整檔案名稱
但缺點是有時候會有一點BUG,如字串長度限制
非懶人法(Scripting.FileSystemObject):
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(FILEPath ) Then
fs.DeleteFile FILEPath
End If
End With
2022年4月3日 星期日
VBA ERR處理 Automation 錯誤 2147319767~重安裝OFFICE 搞定
-2147319767;Automation 錯誤
先前參照無效,或是參照到未編譯的類型。
就是這樣,我搞了好久,感恩更新的安全性,但也衍生參照錯誤發生。
最後直接重新安裝OFFICE 2019就搞定了。
思考:
昨天正常,今天不正常中毒?>比對法、元件異常確認?
檔案換電腦有無正常 答案:正常
掛載 AccessibilitycplAdmin 1.0做元件測試 答案:無解。
直接重安裝OFFICE.....................過關了。
程式:最近的物件陣列混用的想法,提高效率。
最近有一個整理資料的需求。 但又不想做SQL, 所有我就做了一個資料包方式做處理 但每次有78萬筆資料要執行2次篩選 剩下約400筆資料才是本次需求的資料。 然後這400筆資料還要按照年度與科目都到表單上, 要一直不斷重複操作物件,效率大大下降。 所以我想了一個類似一半物件一半...