2020年10月24日 星期六

東澳 粉鳥林











 

花蓮玉里 赤科山金針花海















 

Excel VBA:批次檔案處理 (一般excel檔案處理;csv、xlsm、xls....)

 延續 Excel VBA:批次檔案處理 (TXT 純文字檔案;架構) 這一篇,

做一般excel檔案操作,相對簡單的。

流程類似txt檔案;

前處理:筆者用 EXCEL VBA 開啟檔案 FileDialog應用 做使用。

資料處理:以有使用的行與列判斷資料位置。

輸出資料處理結果:直接貼在工作表2中。簡單處理。

以上流程僅需要2個命令按鈕跟2個工作表。

'第一個按鈕(commandbutton1):清除工作表2資料與格式

Private Sub CommandButton1_Click()

 Sheets("工作表2").Cells.Clear    

End Sub

'第二個按鈕(commandbutton1):'檔案批次處理。

Private Sub CommandButton2_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

            '儲存目前作業中檔案名稱
            
             Windows(Source).Activate

             '啟用目前作業中檔案名稱
             
            'Workbooks.OpenText Filename:=FILE_OPEN.SelectedItems(i), _
            DataType:=xlDelimited, Other:=True, OtherChar:=","

'修改這部分即可

Workbooks.Open Filename:=FILE_OPEN.SelectedItems(i)


            
            WORKNAME = Excel.ActiveWorkbook.Name
            
            Windows(WORKNAME).Activate
            
            s1 = ActiveSheet.UsedRange.Columns.Count

            '取得總使用行數
            
            s2 = ActiveSheet.Range("a656536").End(xlUp).Row

           '取得資料總列的方法
            
            temp = ActiveSheet.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(s2, s1)).Value

            
            Windows(WORKNAME).Close
             
           Windows(Source).Activate
             
             Sheets("工作表2").Activate
             
             s3 = ActiveSheet.Range("a65360").End(xlUp).Row

            '取得總使用列數
             
             If s3 = 1 Then '資料空白時
             
                ActiveSheet.Range(ActiveSheet.Cells(1, 1),  ActiveSheet.Cells(s2, s1)) = temp 

                
            Else 
                '向下堆壘資料
                ActiveSheet.Range(ActiveSheet.Cells(s3 + 1, 1), ActiveSheet.Cells(s3 + s1, s1)) = temp

            
            End If

 Next i


END SUB

2021.10.18更新:

參考檔案下載









累積營收與月營收簡單資料整理分析:2020.9月份

小編整理了一份2020年9月份營收的資料,作簡單分享。

全部資料都是透過VBA自動化作成的。

概念股清單,參考GOODINFO網站的清單建立的,

當然也是VBA作的。

累績營收成長衰退:

為"本期累積營收"減去"去年同期累積營收"再除以"去年同期累積營收"計算後繪製成圖。

image

營收成長衰退:

為"本期營收"減去"去年同期營收"再除以"去年同期營收"計算後繪製成圖。

image


根據卷商網站資料重作更新如下:

image


image

Excel VBA:減資資料擷取

 最近想針對減資這個做一個資料整理,本來是想在財報裡整理舊資料做彙整,

但是發現收集的資料不夠久,所以決定寫一個專門整理這類資料的VBA

架構:

按鈕一:輸入股票代號>收集"變更公司執照"時間>彙整"變更公司執照"時間並列表

按鈕二:按照"變更公司執照"時間開始擷取"實收股本金額(元)"此項資料

成品:

image

後記,大約寫了219行,接下來思考如何以批次方式做上市公司股號作批次處理與收集資料

Excel VBA:批次檔案處理 (TXT 純文字檔案;操作)

 延續 Excel VBA:批次檔案處理 (TXT 純文字檔案;架構) 這一篇,與

Excel VBA入門:開啟純文字檔(txt);Workbooks.OpenText

大概已經知道整個處理流程;

本篇就是操作面做說明。

前處理:筆者用 EXCEL VBA 開啟檔案 FileDialog應用 做使用。

資料處理:以有使用的行與列判斷資料位置。

輸出資料處理結果:直接貼在工作表2中。簡單處理。

以上流程僅需要2個命令按鈕跟2個工作表。

原始資料:

image

image

第一個按鈕(commandbutton1):清除工作表2資料與格式

Private Sub CommandButton1_Click()

 Sheets("工作表2").Cells.Clear
    
End Sub

第二個按鈕(commandbutton1):txt檔案批次處理。


執行結果:

image

缺點:OpenText開檔速度慢了點。

待續:txt其實有時候會存在轉碼問題。

其他:Csv、.Xls.Xlsm等比較簡單,另篇說明。

Excel VBA入門:開啟純文字檔(txt);Workbooks.OpenText

語法參考MSDN:Workbooks.OpenText

練習了一下:

以TAB當間隔時:

image

Private Sub CommandButton1_Click()

    FILEPATH = ActiveWorkbook.Path  '  取得目前啟用中工作簿路徑

    Workbooks.OpenText FileName:=FILEPATH & "\TEST.txt", _
    DataType:=xlDelimited, Tab:=True
    
End Sub

開啟後:

image

以逗號當間隔時:

image

Private Sub CommandButton1_Click()

    FILEPATH = ActiveWorkbook.Path  '  取得目前啟用中工作簿路徑

    Workbooks.OpenText FileName:=FILEPATH & "\TEST.txt", _
    DataType:=xlDelimited, Comma:=True
    
End Sub

image

10.18新增:

筆者比較喜歡這個寫法,透過other設定為true,

就可以用OtherChar這個方式,做分割字元設定使用。

Private Sub CommandButton1_Click()

FILEPATH = ActiveWorkbook.Path

Workbooks.OpenText Filename:=FILEPATH  & "\TEST.txt", _
DataType:=xlDelimited, Other:=True, OtherChar:=","

End Sub

指數變化(2026.07.31) 開始透過AI做整理

 指數變化(2026.07.31) 開始透過AI做整理 一、上周焦點:  7/27 美國 耐久財訂單(6 月) - 全部耐久財訂單月增 0.3%,結束前一月 -4.0% 的跌勢,增幅低於市場預期約 1.8%。   - 核心耐久財(扣除運輸設備)約月增 0.6%,顯示一般設備需求溫...