Excel Vba 如何整理股權分散表(集保庫存) 三、依照檔案別整理 ... | 股權分散表excel
關閉廣告a200271071的部落格跳到主文VBA+股票雜記部落格全站分類:心情日記相簿部落格留言名片May17Sun202019:04ExcelVba如何整理股權分散表(集保庫存)三、依照檔案別整理個股股權分散表(集保庫存)個股集保整理,要用到FileDialog開啟檔案、進階篩選、迴圈、WORKBOOKS物件等等。
小編以非自動下載集保庫存資料為例。
1.首先以FileDialog開啟檔案作下載資料載入。
2.建立檔案清單,根據檔案清單作進階篩選。
3.篩選出的資料建立個股集保資料。
VBA:1.作兩個ACTIVEX命令按鈕,順便在A行維護個股代號。
WJ6圖1.按鈕與清單建立先維護第一個ACTIVEX命令按鈕,作為載入集保庫存檔案用。
VBA: DimFILE_OPENAsFileDialog'宣告FILE_OPEN為檔案對話框 SetFILE_OPEN=Excel.Application.FileDialog(msoFileDialogFilePicker)'設定FILE_OPEN為選取檔案功能 FILE_OPEN.InitialFileName=Excel.ActiveWorkbook.Path'對話框開始目錄的設定 FILE_OPEN.Filters.Add"ExcelFile","*.CSV"'設定對話框要顯示的副檔名 FILE_OPEN.Filters.Add"所有檔案","*.*" FILE_OPEN.Show'顯示對話框 ForI=1ToFILE_OPEN.SelectedItems.Count Source=Excel.ActiveWorkbook.Name'儲存目前作業中檔案名稱 FILE_OPEN_PATH=FILE_OPEN.SelectedItems(I)'取的檔案路徑 Workbooks.OpenFilename:=FILE_OPEN_PATH'開啟案路徑 WORKNAME=Excel.ActiveWorkbook.Name'儲存新開檔案的檔案名稱 Windows(WORKNAME).Activate'啟用新開檔案的檔案名稱 A=ActiveSheet.Range("A:F")'複製集保資料 Windows(Source).Activate Sheets("集保戶股權分散表").Activate Sheets("集保戶股權分散表").Cells.Clear'集保戶股權分散表全部清除 Sheets("集保戶股權分散表").Range("A:F")=A'寫入集保資料 Windows(WORKNAME).Close '關閉集保檔案 Windows(Source).Activate Sheets("工作表1").Activate NextI2.第二個ACTIVEX命令按鈕VBA: '標題 NEW_TAG=Array("DATE","999","999股數","1000","1000股數","5000","5000股數","10000","10000股數","15000","15000股數","20000","20000股數","30000","30000股數","40000","40000股數","50000","50000股數","100000","100000股數","200000","200000股數","400000","400000股數","600000","600000股數","800000","800000股數","1000000","1000001股數") I=1 Source=Excel.ActiveWorkbook.Name'儲存目前作業中檔案名稱DoWhileSheets("工作表1").Range("A"&I)<>"" '迴圈判斷A儲存格有無資料 Sheets("集保戶股權分散表").Range("I1")="證券代號" Sheets("集保戶股權分散表").Range("I2")=Sheets("工作表1").Range("A"&I) '每次迴圈執行的股票代號 STOCK_ID=Sheets("工作表1").Range("A"&I) '每次迴圈執行的股票代號作存檔用 Sheets("工作表3").Cells.Clear'清除資料 Sheets("工作表3").Range("A1:AE1")=NEW_TAG''寫入
小編以非自動下載集保庫存資料為例。
1.首先以FileDialog開啟檔案作下載資料載入。
2.建立檔案清單,根據檔案清單作進階篩選。
3.篩選出的資料建立個股集保資料。
VBA:1.作兩個ACTIVEX命令按鈕,順便在A行維護個股代號。
WJ6圖1.按鈕與清單建立先維護第一個ACTIVEX命令按鈕,作為載入集保庫存檔案用。
VBA: DimFILE_OPENAsFileDialog'宣告FILE_OPEN為檔案對話框 SetFILE_OPEN=Excel.Application.FileDialog(msoFileDialogFilePicker)'設定FILE_OPEN為選取檔案功能 FILE_OPEN.InitialFileName=Excel.ActiveWorkbook.Path'對話框開始目錄的設定 FILE_OPEN.Filters.Add"ExcelFile","*.CSV"'設定對話框要顯示的副檔名 FILE_OPEN.Filters.Add"所有檔案","*.*" FILE_OPEN.Show'顯示對話框 ForI=1ToFILE_OPEN.SelectedItems.Count Source=Excel.ActiveWorkbook.Name'儲存目前作業中檔案名稱 FILE_OPEN_PATH=FILE_OPEN.SelectedItems(I)'取的檔案路徑 Workbooks.OpenFilename:=FILE_OPEN_PATH'開啟案路徑 WORKNAME=Excel.ActiveWorkbook.Name'儲存新開檔案的檔案名稱 Windows(WORKNAME).Activate'啟用新開檔案的檔案名稱 A=ActiveSheet.Range("A:F")'複製集保資料 Windows(Source).Activate Sheets("集保戶股權分散表").Activate Sheets("集保戶股權分散表").Cells.Clear'集保戶股權分散表全部清除 Sheets("集保戶股權分散表").Range("A:F")=A'寫入集保資料 Windows(WORKNAME).Close '關閉集保檔案 Windows(Source).Activate Sheets("工作表1").Activate NextI2.第二個ACTIVEX命令按鈕VBA: '標題 NEW_TAG=Array("DATE","999","999股數","1000","1000股數","5000","5000股數","10000","10000股數","15000","15000股數","20000","20000股數","30000","30000股數","40000","40000股數","50000","50000股數","100000","100000股數","200000","200000股數","400000","400000股數","600000","600000股數","800000","800000股數","1000000","1000001股數") I=1 Source=Excel.ActiveWorkbook.Name'儲存目前作業中檔案名稱DoWhileSheets("工作表1").Range("A"&I)<>"" '迴圈判斷A儲存格有無資料 Sheets("集保戶股權分散表").Range("I1")="證券代號" Sheets("集保戶股權分散表").Range("I2")=Sheets("工作表1").Range("A"&I) '每次迴圈執行的股票代號 STOCK_ID=Sheets("工作表1").Range("A"&I) '每次迴圈執行的股票代號作存檔用 Sheets("工作表3").Cells.Clear'清除資料 Sheets("工作表3").Range("A1:AE1")=NEW_TAG''寫入