1. 程式人生 > >Excel VBA 迴圈讀取一個目錄下面多個檔案的內容,放到另外一個檔案中

Excel VBA 迴圈讀取一個目錄下面多個檔案的內容,放到另外一個檔案中

迴圈讀取一個目錄下面多個檔案的內容,放到另外一個檔案中

Public Sub getInputInfo()

On Error GoTo errl
    
    'OUT対象ファイル開く
    Dim wbOut As Workbook
    Application.DisplayAlerts = False
    Set wbOut = Workbooks.Open(OUT_FILE_PATH_AND_FILE_NAME, UpdateLinks:=0) 
    
    'IN対象ファイル名前
    fileName = Dir(IN_FILE_PATH & "\" & SEARCH_KEY_IN_REQUEST_LIST_FILES & ".xlsx")
    Do While fileName <> ""
        'IN対象ファイル
        Dim wbIn As Workbook
        'IN対象ファイル、File毎にOpen
        Application.DisplayAlerts = False
        Set wbIn = Workbooks.Open(IN_FILE_PATH & "\" & fileName, UpdateLinks:=0, ReadOnly:=True) 
        
        'IN対象ファイル、Sheet毎に処理(檢查活動工作簿是否以共享清單方式開啟,如果是,則本示例設定當前使用者以獨佔方式訪問工作簿)
        wbIn.Activate
        If wbIn.MultiUserEditing Then
            wbIn.ExclusiveAccess
        End If
        
        'IN対象ファイル、Sheet毎に処理
        For sheet_cnt = 1 To wb.Sheets.Count
            
            wbIn.Activate
            wbIn.Sheets(wb.Sheets(sheet_cnt).Name).Select
            Dim wsIn As Worksheet
            Set wsIn = ActiveSheet
            
            Call getInputInfoFromSheetMethodOne(wsIn, wbOut.Sheets(1))
        Next sheet_cnt
        
        'ファイル操作(In)に関してのStream閉じる
        Application.DisplayAlerts = False
        wbIn.Close savechanges:=False
        Application.DisplayAlerts = True
        
        '次のファイル名取得
        fileName = Dir()
    Loop
    
    'OUT対象ファイル閉じる
    Application.DisplayAlerts = False
    wbOut.Save
    wbOut.Close savechanges:=False
    Application.DisplayAlerts = True
    
    
    If ERROR_FLG = "1" Then
        Application.DisplayAlerts = False
        wbOut.Save
        wbOut.Close savechanges:=False
        Application.DisplayAlerts = True
    End If
    
GoTo endok
    
errl:
    '異常処理
    ERROR_FLG = "1"
    ERROR_INFO_LIST.Add ("関數:「getInputInfo」で、エラー発生しました。")
    ERROR_INFO_LIST.Add ("エラー詳細:" & Err.Number & " : " & Err.Description)
    
    'OUT対象ファイル閉じる
    Application.DisplayAlerts = False
    wbOut.Save
    wbOut.Close savechanges:=False
    Application.DisplayAlerts = True
     
endok:
    
End Sub


被呼叫的方法

Public Sub getInputInfoFromSheetMethodThree(wks As Worksheet, outWks As Worksheet)

    On Error GoTo errl

    GoTo endok

    errl:
        '異常処理
        ERROR_FLG = "1"
     
        ERROR_INFO_LIST.Add ("関數:「getInputInfoFromSheetMethodThree」で、エラー発生しました。")
        ERROR_INFO_LIST.Add ("エラー詳細:" & Err.Number & " : " & Err.Description)

    endok:

End Sub


相關推薦

Excel VBA 迴圈讀取一個目錄下面檔案內容放到另外一個檔案

迴圈讀取一個目錄下面多個檔案的內容,放到另外一個檔案中 Public Sub getInputInfo() On Error GoTo errl 'OUT対象ファイル開く Dim wbOut As Workbook Applicati

C語言逐行讀取檔案內容寫入另外一個檔案

<span style="font-family:Microsoft YaHei;font-size:14px;">#include <stdio.h> #include &l

讀取excel檔案內容輸入到另外一個檔案

package com.example.demo; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import

在vi打開文件復制一個文件行到另一個文件

class pan 上一個 復制 family clas font style -s :set number 查看行號1、vi a.txt b.txt或者vi *.txt 2、文件間切換 :n切換到下一個文件,:wn保存再切換 :N到上一個文件,:wN保存再切換 :.=看當

linux面試題:刪除一個目錄下的所有文件但保留一個指定文件

spa -a ash exclude 事先 file roo 老師 保留 面試題:刪除一個目錄下的所有文件,但保留一個指定文件 解答: 假設這個目錄是/xx/,裏面有file1,file2,file3..file10 十個文件 [root@oldboy xx]# to

Socket通訊 一個伺服器對客戶端不能延遲接受資訊的實現

實驗要求: 1.一個時間點,無論哪個基站有資料傳送,伺服器必須同時接收。不能延遲等待這個客戶端接收完畢再接收另一個客戶端; 2.客戶端不能關閉,一直連線,以防資料遺漏 知識點: 多執行緒 同時開啟多個任務,不用按照程式的執行順序來; 基本的程式碼如下: pack

spring IOC一個類有構造器用構造器注入怎麼解決匹配問題

Car 類寫入兩個構造器(引數不同) package com.beans; public class Car { private String brand; private String corp; private double price

一個介面有實現類當呼叫介面的方法時如何判定用的是哪個實現類

一、簡單例子: 1. 直接new一個例項,這樣肯定知道用的哪個例項2. 定義介面型別的變數,用某個例項去初始化。。。這樣也是肯定知道用的哪個例項一般我們用第二種方式有一個好處,如果以後要改動,那麼只需要修改其引用的例項,改動較少!舉個例子:A介面,A1,A2,A3實現A

echarts學習總結(二):一個頁面存在echarts圖形圖形自適應視窗大小

如上圖所示一個頁面有兩個echarts圖形:散點圖和折線圖,如果還寫為                   myChart.setOption(option);                 window.onresize = myChart.resize; 則只有

[c/c++] 一個程序有執行緒用什麼方法讓主執行緒不退出更好佔用資源最少效率最高?

[c/c++] 一個程序有多個執行緒,用什麼方法讓主執行緒不退出更好,要求佔用資源最少,效率最高? 我所知道的不讓主執行緒退出的方法有: 一,死迴圈:while(1);/ for(;;); 二,pause(); 讓主執行緒暫停等待訊號使其退出 三,另一種死迴圈whil

DISTINCT選取欄位只DISTINCT一個欄位的解決辦法

此文是根據原作者所著加上自己的理解總結出來的,如果有什麼問題歡迎各位提出一起交流探討。先貼出原文如下: 某前臺sql語句,簡化後如下 SELECT products_name,products_viewed FROM `products_description`  O

elementui 一個頁面有upload元件 共用方法時怎麼傳自己的引數

https://www.cnblogs.com/steamed-twisted-roll/p/9473644.html &nbs

IO操作檔案內容列印到控制檯檔案內容複製到另外一個檔案

package com.yyj.jan.io; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStrea

python讀取一個目錄下面的所有sqlite文件 然後寫到同一個數據庫文件test.db

listdir test nec efault 目錄 read exists pre range import sqlite3 as dbimport osif name=="main": if os.path.exists("./output/test

SOCKET讀取客戶端下面基站下面手環傳送的資料(驗收專案版本)

之前,本人,發了一大堆關於socket 多執行緒 客戶端 的一大堆博文,有理論的也有實現版本的,有缺陷有成功的! 但是,今天我要說的是,之前的關於socket博文的,都有誤區,而且達不上真正驗收專案的標準!! 今天是2018/10/7 17:09:00,我真正實現了這個功

SQL 拼接字段的值&一個字段條記錄的拼接

cells body score 完成 整數 數據類型 pad 參數 需要 如student表: studentID studentName studentScore 01 Alice 90

連表查詢(3)之根據相關條件查詢另外一個表或表的某字段

兩個 mode object 添加 就會 resultmap control var 多個 1、送檢單位 代理商是從代理商表中取得數據 銷售人員從銷售表中取得數據 說一個簡單的思路: sql語句找到連接兩個表的條件,把另外一個表要用到的字段 寫一個 <re

如何檢測一個圓在圓內?

https data- 兩個 .com origin 所有 結果 定義 thum 問題定義: 存在多個半徑相同的圓,和一個半徑不同的圓,如何判斷半徑不同的圓完全在一群圓內。下圖演示了幾種情況,左邊是完全在圓內,右邊不是。 解決方法之一: 對於紅圓在某個黑圓之內或者

Vue-上拉加載與下拉刷新(mint-ui:loadmore)一個頁面使用上拉加載後沖突問題

tps loaded 讓其 ade disabled 元素 info 鏈接 加載 所遇問題: 該頁面為雙選項卡聯動,四個部分都需要上拉加載和下拉刷新功能,使用的mint-ui的loadmore插件,分別加上上拉加載後,只有最後一個的this.$refs.loadmore.o

一個tomcat部署應用實例總結

%u error 難度 conf proto webapp 信息 eba onf 項目組有好幾個項目需要運行,之前項目少,一個tomcat對應一個項目還能應付,但現在項目多了,要是再一個tomcat對應一個項目的話,一方面看起來很業余,一方面也加大服務器的維護難度。所以現在