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