設為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 40633|回復: 110
打印 上一主題 下一主題

[VBA編程/宏] 淺談Excel批量導入文本文件

[復制鏈接]
跳轉到指定樓層
1#
發(fā)表于 2011-4-2 16:39:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 roych 于 2011-4-2 16:52 編輯

前幾天,版友ever035問到,如何批量導入文本文件。其實,如果屬于標準格式的話,直接用系統(tǒng)自帶的導入外部文件就可以了,不過鑒于他(她)有500多個文件,懶得點擊那么多次鼠標,Roy不妨就這個問題談談吧。
先談談導入的方法,一般不外乎以下幾種。當然,讀取文件流(TextStream),不過大家對它不太熟悉,就先避而不談吧。

1、增加查詢表(Querytable.Add)來導入。這個很簡單,大家可以錄制一個導入文件的宏,再按下Alt+F11查看就知道了。
2、打開文件號(Open FileName For Input as FileNumber#)的方式。通過對文件號的循環(huán)讀取來寫入數(shù)據(jù)!蠹铱赡軐ξ募柌惶私猓次业睦斫馐,文件號其實就是行數(shù)的排列號。當然,如果文本里本身就沒有換行的話,而是以某個字符作為換行標志的話,則應該讀取其位置作為終點(ReadOut)來判斷!f起來有些復雜,所以我也只是“淺談”而已。
3、打開文本文件(OpenText)來導入,參數(shù)很多,詳見附件。我就不再一一解說了。
4、用ADO方法。這個方法我講了N次(N>=3)了,詳見附件以及內置注釋。

現(xiàn)在來談談如何進行批量導入了:
實際上,批量導入只是對上述方法做一個循環(huán)過程罷了。為了達到批量完成的目的,一般要求所有文件應該放在同一個文件夾里。這時候,你至少可以通過兩種方法來達到目的。
1、文件系統(tǒng)組件(FileSystemObject),通過獲取文件夾(GetFold)的方法從而得到相同格式的文件。
2、文件對話框(FileDialog),通過對文件拾取器獲取路徑和文件名,從而批量導入。

兩者區(qū)別在于前者代碼較為簡單,但知道固定的(絕對或者相對)路徑;后者自由度比較大,任意路徑均可,但代碼相對復雜些。
游客,如果您要查看本帖隱藏內容請回復

這里的文件屬于標準格式文件。也許有網(wǎng)友會問,如果對于收銀小票之類的文件,該如何導入。Roy會輕輕地告訴你,用第二種方法,導入后再定位處理其它不需要的字符。因為行列等不固定位置,除此它法均不佳。

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x

本帖被以下淘專輯推薦:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享分享1 分享淘帖2 訂閱訂閱
2#
發(fā)表于 2011-4-3 08:06:14 | 只看該作者
很好,謝謝!
3#
發(fā)表于 2011-4-4 08:52:57 | 只看該作者
學習了,謝謝
4#
發(fā)表于 2011-4-7 21:44:54 | 只看該作者
金牌是一定要拜的
5#
發(fā)表于 2011-4-8 21:01:42 | 只看該作者
謝謝
6#
發(fā)表于 2011-5-10 20:46:00 | 只看該作者
學習了, 正需要呢
7#
發(fā)表于 2011-5-12 15:43:27 | 只看該作者
好好學習天天向上
8#
發(fā)表于 2011-5-26 10:31:28 | 只看該作者
很好,學習一下,很有幫助
9#
發(fā)表于 2011-6-2 17:14:43 | 只看該作者
正是需要這個東西,樓主提供的很及時啊,樓主萬歲
10#
發(fā)表于 2011-6-2 21:41:40 | 只看該作者
宏代碼搞定。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-17 05:47 , Processed in 0.100597 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表