中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
利用Open方法將txt數(shù)據(jù)批量導(dǎo)入Excel中 | VBA實(shí)例教程

除非注明,文章均為 戰(zhàn)戰(zhàn)如瘋 原創(chuàng),轉(zhuǎn)載請(qǐng)保留鏈接: http://www.zhanzhanrufeng.com/cat4/138.html,VBA交流群273624828。

之前學(xué)過(guò)了怎樣將Excel內(nèi)容導(dǎo)出為單個(gè)txt文件,今天我們來(lái)看一下怎樣將txt格式的數(shù)據(jù)批量導(dǎo)入到Excel表格中。將txt數(shù)據(jù)導(dǎo)入Excel中的方法有很多,比如Querytable,ADO,filesystemobjec,Open或者直接錄制宏,我們只要掌握其中一種即可。這里我要講的是Open方法,下節(jié)我們?cè)僦v錄制宏的方法。Excel對(duì)想要導(dǎo)入其中的txt數(shù)據(jù)是有一定要求的,數(shù)據(jù)必須整齊,要有統(tǒng)一的分隔符,比如逗號(hào)或空格等,如果你的數(shù)據(jù)達(dá)不到這些要求的話需要事前對(duì)數(shù)據(jù)進(jìn)行加工。

假設(shè)我們這里有一個(gè)3列的txt格式數(shù)據(jù),數(shù)據(jù)之間以逗號(hào)為分隔符,下面我們?nèi)匀挥蒙瞎?jié)的Open方法來(lái)實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)入到Excel表中??聪旅娴拇a

Sub open法導(dǎo)入1()
Dim i%, a, b, c, mypath, myfile, t
Application.ScreenUpdating = False
t = Timer                           '記錄開始時(shí)間
mypath = ThisWorkbook.Path & "\"    '獲得當(dāng)前路徑
myfile = mypath & "工資表.txt"      '要導(dǎo)入的txt的路徑
With Sheet1
.UsedRange.ClearContents        '清除sheet1中的內(nèi)容
Open myfile For Input As #1     '打開txt來(lái)對(duì)Excel輸入
i = 1                           '行的計(jì)數(shù)器
Do While Not EOF(1)             '判斷是否到文件末尾
Input #1, a, b, c            '每列數(shù)據(jù)給一個(gè)對(duì)應(yīng)的標(biāo)識(shí)
Cells(i, 1) = a              '將a賦值給cells(i,1)
Cells(i, 2) = b
Cells(i, 3) = c
i = i + 1                       '行計(jì)數(shù)器+1
Loop                             '循環(huán)到下一行
Close #1
End With
Application.ScreenUpdating = True
MsgBox "耗時(shí)" & Timer - t & "s"     '看下用時(shí)多久
End Sub

上面的代碼中用到了Open myfile For Input As #1,看過(guò)將Excel內(nèi)容導(dǎo)出為單個(gè)txt文件這篇文章的朋友應(yīng)該還記得我們將excel導(dǎo)出為txt時(shí)用的是Open myfile For Output As #1,這點(diǎn)應(yīng)該注意一下。EOF(1)是判斷是不是到了txt文件的末尾,如果不到則繼續(xù)循環(huán),其中的1即是#1中的1。 Input #1, a, b, c是將每列的數(shù)據(jù)用一個(gè)字母來(lái)代替,示例中只有3列數(shù)據(jù)所以用的a,b,c,用的時(shí)候有幾列就用幾個(gè)字母。之后將a,b,c的值直接賦給了相應(yīng)的單元格。如果數(shù)據(jù)較多的話我們是不提倡將數(shù)據(jù)直接賦給單元格,因?yàn)檫@樣會(huì)很慢,而用數(shù)組則會(huì)快的多。下面的代碼就是先將數(shù)據(jù)都放到一個(gè)數(shù)組中,最后將整個(gè)數(shù)據(jù)中的數(shù)據(jù)放入到Excel中。

Sub open法導(dǎo)入()
Dim i%, a, b, c, mypath, myfile, t, arr(1 To 5000, 1 To 3)
Application.ScreenUpdating = False
t = Timer
mypath = ThisWorkbook.Path & "\"
myfile = mypath & "工資表.txt"
With Sheet1
.UsedRange.ClearContents
Open myfile For Input As #1
i = 1
Do While Not EOF(1)
Input #1, a, b, c
arr(i, 1) = a
arr(i, 2) = b
arr(i, 3) = c
i = i + 1
Loop
Close #1
End With
Sheet1.Range("a1").Resize(i, 3) = arr
Application.ScreenUpdating = True
MsgBox "耗時(shí)" & Timer - t & "s"
End Sub

這里我事先定義了一個(gè)固定大小 的數(shù)組,而且將行數(shù)填的相當(dāng)大,防止數(shù)據(jù)不夠用,當(dāng)然你也可以在循環(huán)的過(guò)程中利用preserve redim對(duì)數(shù)組的大小進(jìn)行修改,感興趣可以自己百度??梢员容^一下兩種方法用的時(shí)間,用數(shù)組方法顯然速度提升了好幾倍。用上面的方法思路簡(jiǎn)單,但是如果我列數(shù)據(jù)很多,那這個(gè)代碼寫起來(lái)也相當(dāng)?shù)穆闊┝?,那還有更好的方法嗎?答案是肯定的,下節(jié)我們就來(lái)講怎樣通過(guò)修改錄制宏的方法來(lái)將多個(gè)txt格式數(shù)據(jù)批量的導(dǎo)入到excel中。

本節(jié)示例文件下載:http://pan.baidu.com/s/1sjrwxU9。

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
EXCEL跨表取值匯總
統(tǒng)計(jì)一個(gè)文件夾下所有excel表最后一行 - 『Excel VBA程序開發(fā)』 - Exce...
完全手冊(cè)Excel VBA典型實(shí)例大全:通過(guò)368個(gè)例子掌握
用VBA提取路徑下所有工作簿的工作表名(四個(gè)方法)
值得收藏 | 事半功倍VBA,批量處理Excel多個(gè)文件
Excel中批量導(dǎo)入Word表格
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服