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