vba fso读utf 文本_利用FSO对象操作文件
大家好,我們今日講解“VBA信息獲取與處理”教程中第十八個(gè)專題“FSO對(duì)象對(duì)文件及文件夾的處理”的第二節(jié)“利用FSO對(duì)象操作文件”,這個(gè)專題是非常實(shí)用的知識(shí)點(diǎn),希望大家能掌握利用。教程會(huì)提供配套的程序文件。
第二節(jié) 利用FSO對(duì)象操作文件
大家好,我們繼續(xù)講解FSO對(duì)象的應(yīng)用,今日的內(nèi)容是利用FSO對(duì)象操作文件,對(duì)于文件的操作,我們這講講解如何復(fù)制、移動(dòng)和刪除,對(duì)于讀寫的操作,我將在后面的章節(jié)中做專門的講解。
1 FSO對(duì)象操作文件的基本語(yǔ)句
為了達(dá)到操作文件的目的,我們?nèi)允且葘W(xué)習(xí)一下基本的操作語(yǔ)句,這些是應(yīng)用的基礎(chǔ)。
1)CopyFile方法,將一個(gè)或多個(gè)文件從一個(gè)位置復(fù)制到另一個(gè)位置。
語(yǔ)法:object.CopyFile source, destination, [ overwrite ]
參數(shù):
object 必需,始終是FileSystemObject的名稱。
source 必需,字符串文件規(guī)范,可以包括通配符來(lái)代表要復(fù)制的一個(gè)或多個(gè)文件。
destination 必需,要將 source 中的文件復(fù)制到的字符串目標(biāo)。不能使用通配符。
overwrite 可選。布爾值,指示是否覆蓋現(xiàn)有文件。如果為 True,則覆蓋文件,如果為 False,則不覆蓋文件。默認(rèn)為 True。請(qǐng)注意,如果 destination 具有只讀屬性集,則不管 overwrite 值是什么,CopyFile都將失敗。
備注:通配符只能在 source 參數(shù)的最后路徑組件中使用。例如,可以使用:FileSystemObject.CopyFile "c:mydocumentsletters*.doc", "c:tempfolder"
但不能使用:
FileSystemObject.CopyFile "c:mydocuments*R1???97.xls", "c:tempfolder"
2)MoveFile方法,將一個(gè)或多個(gè)文件從一個(gè)位置移動(dòng)到另一個(gè)位置。
語(yǔ)法:object.MoveFile source, destination
參數(shù):
object 必需,是FileSystemObject的名稱。
source 必需。要移動(dòng)的一個(gè)或多個(gè)文件的路徑,source 參數(shù)字符串只能在最后一個(gè)路徑組件中包含通配符。
destination 必需,一個(gè)或多個(gè)文件要移動(dòng)到的路徑,destination 參數(shù)不能包含通配符。
備注:如果source包含通配符或destination以路徑分隔符 (**) 結(jié)束, 則假定destination指定要在其中移動(dòng)匹配文件的現(xiàn)有文件夾。否則會(huì)將 destination 假定為要?jiǎng)?chuàng)建的目標(biāo)文件的名稱。不論是哪種情況,在移動(dòng)單個(gè)文件時(shí)均會(huì)發(fā)生三件事情:
如果 destination 不存在,則會(huì)移動(dòng)該文件。這是通常的情況。
如果 destination 是現(xiàn)有文件,則會(huì)出現(xiàn)錯(cuò)誤。
如果 destination 是一個(gè)目錄,則會(huì)出現(xiàn)錯(cuò)誤。
如果 source 中使用的通配符與任何文件都不匹配,也會(huì)出現(xiàn)錯(cuò)誤。MoveFile方法會(huì)在它遇到第一個(gè)錯(cuò)誤時(shí)停止。不會(huì)嘗試回滾在錯(cuò)誤發(fā)生之前所做的任何更改。
提示信息:只要操作系統(tǒng)支持,此方法就允許在卷之間移動(dòng)文件。
3)DeleteFile方法,刪除指定文件。
語(yǔ)法:object.DeleteFilefilespec, [ force ]
參數(shù):
Object必需,始終是FileSystemObject的名稱。
filespec必需,要?jiǎng)h除的文件的名稱。filespec可以在最后的路徑組件中包含通配符。
force可選,若要?jiǎng)h除帶有只讀屬性集的文件,則 Boolean 值為 True;否則為 False(默認(rèn))。
備注:如果未找到匹配的文件,則將出現(xiàn)錯(cuò)誤。DeleteFile方法在遇到第一個(gè)錯(cuò)誤時(shí)停止。不會(huì)嘗試回滾或撤消在出現(xiàn)錯(cuò)誤之前已進(jìn)行的任何更改。
2 FSO對(duì)象操作文件的代碼實(shí)例
為了實(shí)現(xiàn)操作文件,我給出了下面的代碼:
Sub mynzA() '使用FSO對(duì)象操作文件
Dim objFso As Object
strPath = ThisWorkbook.Path&Application.PathSeparator
'建立FSO引用
Set objFso = CreateObject("Scripting.FileSystemObject")
If objFso.FileExists(strPath& "018文本測(cè)試.txt") Then
'復(fù)制文件
objFso.CopyFilestrPath& "018文本測(cè)試.txt", strPath& _
"018TEMP018文本測(cè)試2.txt"
MsgBox "018TEMP文件夾下018文本測(cè)試2.txt已經(jīng)復(fù)制完成"
'移動(dòng)文件
objFso.MoveFilestrPath& "018TEMP018文本測(cè)試2.txt", _
strPath& "018文本測(cè)試1.txt"
MsgBox "018TEMP文件夾下018文本測(cè)試2.txt已經(jīng)移出文件夾"
'刪除文件
objFso.DeleteFilestrPath& "018文本測(cè)試1.txt"
MsgBox "018文本測(cè)試1.txt已經(jīng)刪除"
End If
Set objFile = Nothing
Set objFso = Nothing
MsgBox "OK!"
End Sub
代碼截圖:
代碼的講解:(略)
3 FSO對(duì)象操作文件代碼的實(shí)現(xiàn)效果
我們點(diǎn)擊運(yùn)行按鈕,我們會(huì)看到下面的截圖:
一步步操作下去,又會(huì)回到原點(diǎn)。
本節(jié)知識(shí)點(diǎn)回向:
① 本例中分別利用了操作文件的那些方法?
② 在利用上述方法的之前要做什么?
本講代碼參考文件:018工作表.xlsm
積木編程的思路內(nèi)涵:
在我的系列書籍中一直在強(qiáng)調(diào)“搭積木”的編程思路,這也是學(xué)習(xí)利用VBA的主要方法,特別是職場(chǎng)人員,更是要采用這種方案。其主要的內(nèi)涵:
1 代碼不要自己全部的錄入。你要做的是把積木放在合適的位置然后去修正代碼,一定要拷貝,從你的積木庫(kù)中去拷貝,然后修正代碼,把時(shí)間利用到高效的思考上。
2 建立自己的“積木庫(kù)”。平時(shí)在學(xué)習(xí)過程中,把自己認(rèn)為有用的代碼放在一起,多積累,在用到的時(shí)候,可以隨時(shí)拿來(lái)。你的積木庫(kù)資料越多,你做程序的思路就會(huì)越廣。
VBA的應(yīng)用界定及學(xué)習(xí)教程:
VBA是利用Office實(shí)現(xiàn)個(gè)人小型辦公自動(dòng)化的有效手段(工具)。這是我對(duì)VBA的應(yīng)用界定。在取代OFFICE新的辦公軟件沒有到來(lái)之前,誰(shuí)能在數(shù)據(jù)處理方面做到極致,誰(shuí)就是王者。其中登峰至極的技能非VBA莫屬!
我記得20年前自己初學(xué)VBA時(shí),那時(shí)的資料甚少,只能看源碼自己琢磨,真的很難。20年過去了,為了不讓學(xué)習(xí)VBA的朋友重復(fù)我之前的經(jīng)歷,我根據(jù)自己多年VBA實(shí)際利用經(jīng)驗(yàn),推出了六部VBA專門教程,目前教程均通過32位和64位兩種OFFICE系統(tǒng)測(cè)試。
第一套:VBA代碼解決方案 是VBA中各個(gè)知識(shí)點(diǎn)的講解,教程共147講,覆蓋絕大多數(shù)的VBA知識(shí)點(diǎn),提供的程序文件更是一座不可多得的代碼寶庫(kù),是初學(xué)及中級(jí)人員必備教程;目前這套教程提供的版本是修訂第二版,程序文件通過32位和64位兩種OFFICE系統(tǒng)測(cè)試。
第二套:VBA數(shù)據(jù)庫(kù)解決方案 數(shù)據(jù)庫(kù)是數(shù)據(jù)處理的專業(yè)利器,教程中詳細(xì)介紹了利用ADO連接ACCDB和EXCEL的方法和實(shí)例操作,適合中級(jí)人員的學(xué)習(xí)。目前這套教程提供的是修訂第一版教程,程序文件通過32位和64位兩種OFFICE系統(tǒng)測(cè)試。
第三套:VBA數(shù)組與字典解決方案 數(shù)組和字典是VBA的精華,字典是VBA代碼水平提高的有效手段,值得深入的學(xué)習(xí),是初級(jí)及中級(jí)人員代碼精進(jìn)的手段。目前這套教程提供的版本是修訂第一版,程序文件通過32位和64位兩種OFFICE系統(tǒng)測(cè)試。
第四套:VBA代碼解決方案之視頻 是專門面向初學(xué)者的視頻講解,可以快速入門,更快的掌握這門技能。這套教程是第一套教程(修訂一版)的視頻講解,聽元音更易接受。這套教程還會(huì)額外提供通過32位和64位兩種OFFICE系統(tǒng)測(cè)試的程序文件。
第五套:VBA中類的解讀和利用 這是一部高級(jí)教程,講解類的虛無(wú)與肉身的度化,類的利用雖然較少,但仔細(xì)的學(xué)習(xí)可以促進(jìn)自己VBA理論的提高。這套教程的領(lǐng)會(huì)主要是讀者的領(lǐng)悟了,領(lǐng)悟一種佛學(xué)的哲理。目前這套教程提供的版本是修訂第一版,程序文件通過32位和64位兩種OFFICE系統(tǒng)測(cè)試。
第六套教程:《VBA信息獲取與處理》,這是一部高級(jí)教程,涉及范圍更廣,實(shí)用性更強(qiáng),面向中高級(jí)人員。教程共二十個(gè)專題,包括:跨應(yīng)用程序信息獲得、隨機(jī)信息的利用、電子郵件的發(fā)送、VBA互聯(lián)網(wǎng)數(shù)據(jù)抓取、VBA延時(shí)操作,剪切板應(yīng)用、Split函數(shù)擴(kuò)展、工作表信息與其他應(yīng)用交互,FSO對(duì)象的利用、工作表及文件夾信息的獲取、圖形信息的獲取以及定制工作表信息函數(shù)等等內(nèi)容。程序文件通過32位和64位兩種OFFICE系統(tǒng)測(cè)試。
上述教程的學(xué)習(xí)順序:1→3→2→6→5或者4→3→2→6→5。提供的程序文件更是一座巨大的代碼庫(kù),供讀者使用,如需要可以WeChat: NZ9668
學(xué)習(xí)VBA是個(gè)過程,也需要經(jīng)歷一種枯燥的感覺
“眾鳥高飛盡,孤云獨(dú)去閑。相看兩不厭,只有敬亭山”。學(xué)習(xí)的過程也是修心的過程,修一個(gè)平靜的心。在代碼的世界中,心平靜了,心情好了,身體自然而然就好。心靜則正,內(nèi)心里沒有那么多邪知邪見,也就沒有那么多妄想。利人就是利己。我的教程助力給正在努力的朋友。
“水善利萬(wàn)物而不爭(zhēng)”,綿綿密密,微則無(wú)聲,巨則洶涌。學(xué)習(xí)亦如此,知道什么是自己所需要的,不要蜷縮在一小塊自認(rèn)為天堂的世界里,待到暮年時(shí)再去做自欺欺人的言論。要努力提高自己,用一顆充滿生機(jī)的心靈,把握現(xiàn)在,這才是進(jìn)取。越是有意義的事情,困難會(huì)越多。愿力決定始終,智慧決定成敗。不管遇到什么,都是風(fēng)景。看淡紛爭(zhēng),看輕得失。學(xué)習(xí)時(shí)微而無(wú)聲,利用時(shí)則巨則洶涌。“路漫漫其修遠(yuǎn)兮,吾將上下而求索”
每一分收獲都是成長(zhǎng)的記錄,怎無(wú)憑,正是這種執(zhí)著,成就了朝霞的燦爛。最后將一闕詞送給致力于VBA學(xué)習(xí)的朋友,讓大家感受一下學(xué)習(xí)過程的枯燥與執(zhí)著:
浮云掠過,暗語(yǔ)無(wú)聲,
唯有清風(fēng),驚了夢(mèng)中啼鶯。
望星,疏移北斗,
奈將往事雁同行。
阡陌人,昏燈明暗,
忍顧長(zhǎng)亭。
多少VBA人,
暗夜中,悄聲尋夢(mèng),盼卻天明。
怎無(wú)憑!
分享我多年工作實(shí)際經(jīng)驗(yàn)的成果,隨喜這些有用的東西,給確實(shí)需要利用VBA的同路人。回向?qū)W習(xí)利用VBA的歷歷往事,不勝感慨,謹(jǐn)以這些文字以紀(jì)念,
分享成果,隨喜正能量
總結(jié)
以上是生活随笔為你收集整理的vba fso读utf 文本_利用FSO对象操作文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django language_第 58
- 下一篇: gitclone 一个tag的地址_一个