2021年1月3日 星期日

VBA 開啟檔案 (二) FileDialog應用:開盤、收盤價、最高、最低、成交量整理

想法:
看到某篇M01網友想要整理每日收盤開盤交易量等價格,就也寫一篇簡單教學文當參考。
想法:
找尋可以下載資料的網站,其次透過之前小編一篇文章的教學做資料整理。
先來下載2天份資料(下載),然後參考範本檔案做操作。
主要流程:開啟檔案>抓取資料>回寫表單>下一個檔案
作一個ACTIVEX按鈕插入以下VBA CODE。
VBA CODE:
Private Sub CommandButton1_Click()
Dim FILE_OPEN As FileDialog '宣告FILE_OPEN為檔案對話框
Set FILE_OPEN = Excel.Application.FileDialog(msoFileDialogFilePicker)
'設定FILE_OPEN為選取檔案功能
FILE_OPEN.InitialFileName = Excel.ActiveWorkbook.Path '對話框開始目錄的設定
FILE_OPEN.Filters.Add "Excel File", "*.xls*" '設定對話框要顯示的副檔名
FILE_OPEN.Filters.Add "所有檔案", "*.*"
FILE_OPEN.Show '顯示對話框
For I = 1 To FILE_OPEN.SelectedItems.Count
Source = Excel.ActiveWorkbook.Name '儲存目前作業中檔案名稱
FILE_OPEN_PATH = FILE_OPEN.SelectedItems(I) '取的檔案路徑
Workbooks.Open Filename:=FILE_OPEN_PATH '開啟案路徑
WORKNAME = Excel.ActiveWorkbook.Name '儲存新開檔案的檔案名稱
'新增的部分
S1 = ActiveSheet.Range("A2000").End(xlUp).Row
Data = ActiveSheet.Range("A2:H" & S1)
Windows(WORKNAME).Close '啟用新開檔案的檔案名稱
Windows(Source).Activate '啟用目前作業中檔案名稱
S2 = ActiveSheet.Range("A655360").End(xlUp).Row
If S2 = 1 Then
Sheets("工作表1").Range("A2:H" & S1) = Data
Else
Sheets("工作表1").Range("A" & S2 + 1 & ":G" & S1 + S2 - 1) = Data
End If
Next I
End Sub


結果:


圖1.結果


沒有留言:

張貼留言

指數變化(2025.03.28)

 指數變化(2025.03.28) 上周焦點: 美國消費者信心指數 3/25 92.9 美國耐久財訂單月增率 3/26 1.4 PCE 月增 0.4 年增 2.8 (不多阿,最高還有5.5ㄝ)   本周愛看: 美國非農業就業人數變化 美國ISM製造業採購經理人指數 美國芝加哥FE...