Excel實戰技巧27:在兩個Excel文件之間傳遞數據而無須打開Excel文件

2021-02-24 完美Excel

微信公眾號:excelperfect

 

經常有人需要從關閉的工作簿文件中取值,省掉打開工作簿的操作。而本文介紹的技巧,所涉及到的工作簿文件都不需要打開,就可以完成將某工作簿文件中的數據遷移到指定的工作簿文件中。

 

因為要使用ADO技術,所以首先需要設置對下面兩個庫的引用:

1. Microsoft ActiveX Data Objects 2.xLibrary
2. Microsoft ActiveX Data Objects Recordset 2.x Library

在VBE中,單擊菜單「工具——引用」,在「引用」對話框中,找到並選取上述兩個庫,如下圖1所示。

圖1

 

在VBE中,輸入下面的代碼:

Sub TransferDataBetweenExcelFiles(strInputFileFullName As String, _

              strOutputFileFullName As String,_

              strInputSheetName As String)

    Dim adoConnection As New ADODB.Connection

    Dim adoRcdSource As New ADODB.Recordset

    Dim strProvider As String

    Dim strExtProperties As String

    Dim strFileExt As String

   

    If Len(Dir(strInputFileFullName)) = 0 Then

        MsgBox "要轉移數據的源文件不存在."

        Exit Sub

    End If

   

    strFileExt = Mid(strOutputFileFullName, _

                InStrRev(strOutputFileFullName,".", _

                -1, vbTextCompare), _

                Len(strOutputFileFullName))

   

    If strFileExt = ".xlsx" Then

        strExtProperties = "Excel 12.0XML"

    Else

        strExtProperties = "Excel8.0"

    End If

   

    If CDbl(Application.Version) > 11 Then

        strProvider ="Microsoft.ACE.OLEDB.12.0"

    Else

        strProvider ="Microsoft.JET.OLEDB.4.0"

    End If

   

    adoConnection.Open "Provider="& strProvider & ";Data Source=" & _

       strOutputFileFullName &";Extended Properties=""" & _

       strExtProperties &";HDR=YES"";"

    adoRcdSource.Open "Select * into[" & strInputSheetName & "] From [" & _

       strInputSheetName & "$] IN'" & strInputFileFullName & _

       "'[" & strExtProperties& ";HDR=YES;]", adoConnection

   

    adoConnection.Close

   

    Set adoRcdSource = Nothing

    Set adoConnection = Nothing

End Sub

 

假設C盤中存在一個名為「源文件.xlsx」的工作簿,下面是測試代碼,

Sub test()

    TransferDataBetweenExcelFiles "C:\源文件.xlsx","C:\目標文件.xlsx", "Sheet1"

End Sub

 

運行後,將「源文件.xlsx」工作簿工作表Sheet1中的數據移至名為「目標文件.xlsx」的工作簿,如下圖2所示。

圖2

 

注意,「源文件.xlsx」工作簿一定要存在,但「目標文件.xlsx」工作簿不一定需要存在。如果「目標文件.xlsx」工作簿不存在,則會創建該工作簿並獲取「源文件.xlsx」工作簿指定遷移的工作表,如上圖2所示。

歡迎分享本文,轉載請註明出處。

歡迎在下面留言,完善本文內容,讓更多的人學到更完美的知識。

歡迎關注[完美Excel]微信公眾號:

相關焦點

  • pandas 花式保存 Excel 數據的 N 種姿勢!
    openpyxl加載數據模板寫出Pandas對象的數據雖然 openpyxl 直接寫出數據指定樣式相對xlsxwriter麻煩,但 openpyxl 還有個巨大的優勢就是可以讀取已有的excel文件,在其基礎上修改。
  • Excel進階:如何自定義一個函數?
    於是我們就在想,要是有個函數可以計算距離就好了,好吧,我們動手自定義一個函數吧。第一步:打開一個空白文檔第二步:按鍵盤組合鍵「Alt+F11」或切換至「開發工具」功能區並點擊「Visual Basic」按鈕進入VBA環境。
  • Excel教程:Excel表輸入數據,你被坑了嗎?
    你有被excel這樣坑過嗎?該怎麼處理呢?坑一:在excel表裡輸入以0開頭的數據,0消失了例:在單元格裡輸入工號0001,0會消失,變成1,該怎麼解決呢?先將單元格格式設置成文本格式,再輸入以0開頭的工號坑二:在excel表裡輸入手機號碼,變成了#號例:在C2單元格裡輸入手機號碼13509621565,變成了#號,這是神馬情況呢??拉寬列寬,或雙擊C列右邊線,將列寬調整至最合適的列寬。
  • Excel教程:Excel生成目錄索引最簡單快捷的方法
    關於excel怎麼生成目錄的問題,答案多種多樣,有人用VBA生成,有人用宏表函數等。本著去繁化簡的原則,給大家分享另外一種更加簡單的Excel添加目錄索引的方法,主要使用到了兼容性檢查來實現。 看下面的截圖,Excel文件裡面一共有16張工作表,來回切換,非常不方便,因此我們可以添加目錄索引。
  • Excel教程:Excel中F8鍵的妙用
    今天我們一起來看看<F8>鍵在excel表中能發揮什麼作用呢?按<F8>鍵後,excel表左下角會顯示擴展式選定,這就是<F8>鍵功能的強大,可以任意擴展式的選定單元格。
  • Excel實用技巧:如何不顯示報表中的0值
    問題是如何讓excel報表裡的數字0不顯示呢?    今天和大家一起分享一下這方面的技巧。 一、所有0值顯示為空    在Excel2007中,我們可以通過Excel選項將所有0顯示為空。例如公式「=A1+B1」,希望返回0值顯示為空,只需要加IF函數:    =IF(A1+B1=0,"",A1+B1) 2017年3月19日   本周周日 中華會計網校    會計必須懂的excel實用技巧(直播+錄播課)報名地址:   http://www.chinatet.com/zhiboke/kjbdexceljq/2017年3
  • 每天學一點excel:IF函數的使用方法
    點擊上方藍色 每天學一點excel ,關注後獲得更多excel教程和技巧。大家好,今天小慄教大家怎麼使用if函數。
  • Excel教程:這是EXCEL中一個看起來好玩高大上的功能!
    後來,返回單位,我也打開EXCEL,卻沒有找到這個功能。原來是因為默認情況下,EXCEL2013版本沒有把記錄單功能顯示出來,需要我們手動去添加。 第一,excel2013記錄單在哪裡 執行「文件——選項」,打開「EXCEL選項」框,根據下面截圖設置,將記錄單添加到一個「新建組」裡面。新建組還可以重命名。
  • Excel教程:學會這2招,玩轉表格背景圖
    點擊文件,選擇圖片插入。選中圖片,按ctrl+c複製圖片,打開windows的畫圖插件,按ctrl+V粘貼進去,另存為一個圖片文件。返回excel,刪除之前設置的矩形,點擊「頁面布局」-「背景」,選擇剛才保存的圖片插入。
  • Excel教程:Excel中的「0」原來還可以這麼玩
    直接在excel表中輸入以0開頭的數據,0會消失,遇到這種情況該怎麼解決呢?工號一團亂,有一位數,兩位數…,現需將工號補齊六位數,不足的以0補位,該怎麼操作呢?如下圖A列中的數據都是文本型的,該怎麼將這些文本型數字轉換為數值呢?
  • Excel公式技巧53: 使用TEXTJOIN函數反轉文本
    學習Excel技術,關注微信公眾號:excelperfect 在《Excel公式技巧48:生成從大到小連續的整數
  • Excel黑科技:幫你破解Excel工作表保護密碼和工作簿密碼
    操作步驟:Step1:把Excel文件的擴展名xlsx修改為Rar。瞬間Excel文件變成了壓縮包。如果你的文件擴展名沒有顯示出來,請點擊此電腦→查看→顯示與隱藏,把文件擴展名前面的方框打勾,如圖2。圖 8Step3、用記事本打開sheet1.xml文件,搜protect快速找到保護代碼並刪除,如圖9和圖10,保存後把文件拖回到壓縮包中。
  • Excel 2016 新功能
    超霸氣的Excel 2016新圖表——樹狀圖超霸氣的Excel 2016新圖表——旭日圖Excel 2016 新圖表——瀑布圖Excel 2016新增圖表——直方圖Excel 2016 預測工作表Excel 2016讓二維表快速轉換為一維表office 2016(64位)安裝包和破解程序
  • 高盛 MD:只會用滑鼠做 Excel 的留學生,我們不招 | 附50G Excel 神級自學教程
    要另存文件?先點擊打開「文件-另存為」菜單!要向下填充一列?使勁按住滑鼠左鍵往下拉!拉!拉!菜鳥型選手最好在2~3個月內,成長到下一階段,否則各種吐槽就隨之而來。據說 J.P.  一個曾任職於著名戰略諮詢公司的美國同學親切回憶道:「People ask me what's all the fuss about learning excel shortcuts...
  • Excel技巧:Vlookup 使用通配符進行匹配
    -Vlookup函數是低頻但重要的excel函數之一,因為規則相對複雜,每次使用前都要搜一下用法, 然而今天遇到一點bug,搗鼓半天才找到解決辦法——使用通配符和關鍵詞進行匹配。1.返回數據必須在查找數據的右邊,且查詢區域的第一列必須是查詢欄位。2. 如果查詢值是字符串,而且兩個表格中不是嚴格匹配,可以使用關鍵詞和通配符。舉例來說,如下目標是根據tag列(F列)的名稱在灰色區域的大表中匹配查詢對應的標籤分類。
  • 這個應該會:快速找到excel命令的快捷鍵
    excel軟體為我們提供了很多快捷鍵,如ctrl+F可以打開查找對話框,ctrl+d可以向下填充,ctrl+;可以輸入當天的日期等
  • Excel圖表技巧03:另類組合圖表
    學習Excel技術,關注微信公眾號:excelperfect
  • 往日精選:excel強制換行(加強版)
    例1 如圖的示,讓單元格的顯示內容「Excel精英培訓網http;//www.excelpx.com」,網站名稱和網址分兩行顯示。具體步驟:輸入Excel精英培訓網後,按alt+回車鍵輸入換行符,再輸入網址「http;//www.excelpx.com」,2 用公式自動換行 例2:如下圖所示,要求在b3中用公式連接
  • Excel教程:隱藏得很深的查找替換技巧,送給你!
    點擊圖片  1元搶購  Excel、Word、PS等課程活動都知道word中的查找替換各種利用通配符很強大,但是excel 勤動手,勤動腦,讓我們來發現excel中更多的小技巧吧! 還沒完!!! 你們拿小本本記下來了嘛?記得要做筆記哦!
  • 每天學一點excel:凍結窗格,這3種情況你都會嗎?
    點擊上方藍色 每天學一點excel ,關注後獲得更多excel教程和技巧。