国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

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

開通VIP
VBA操作文件和文件夾

獲取當(dāng)前文件夾的名稱(CurDir 函數(shù))

當(dāng)你使用文件時(shí),經(jīng)常會需要知道當(dāng)前文件夾的名稱,你使用CurDir函數(shù)輕易地獲取該信息:

CurDir([drive])

Drive是一可選參數(shù),如果你忽略它,VBA將使用當(dāng)前驅(qū)動(drive)。

CurDir函數(shù)返回一個(gè)文件路徑作為Variant(變量)。如果要返回作為字符串(String)的路徑的話,就得使用CurDir$(這里的$是字符串的類型聲明字符)。讓我們在立即窗口里做些練習(xí),練習(xí)使用這些函數(shù)吧:
1. 打開一個(gè)新工作簿,并且切換到VB編輯器窗口

2. 激活立即窗口并敲入下述代碼:

?CurDir

當(dāng)你按下回車,VB就顯示當(dāng)前文件夾名稱,例如:
C:\
如果你有第二個(gè)硬盤(或者光驅(qū))的話,你可以獲取D盤上的當(dāng)前文件夾,例如:

?CurDir(“D:\”)

如果你提供了一個(gè)并不存在的驅(qū)動字母的話,VB就將顯示下述錯(cuò)誤信息:“設(shè)備不可用”

3. 要儲存當(dāng)前動名稱到變量myDrive,可以輸入下述指令:

myDrive = Left(CurDir$,1)

當(dāng)你按下回車鍵時(shí),VB將當(dāng)前驅(qū)動器的字母儲存到變量myDrive
敲入下述指令并回車,可以檢查變量myDrive的內(nèi)容:

?myDrive

你還可以將上面的指令改為如下:

myDrive = left(CurDir$,1) & ':'

VB將返回驅(qū)動器字母,后面帶有一個(gè)冒號。

更改文件或文件夾名稱(Name 函數(shù))

使用函數(shù)Name可以重命名文件或者文件夾,例如:

Name old_pathname As new_pathname

Old_pathname是你想用重命名的文件或文件夾的名稱和路徑,New_pathname則明確文件或文件夾的新名稱和位置。使用函數(shù)Name,你可以將一個(gè)文件從一個(gè)文件夾移動到另外一個(gè)文件夾,但是,你不可以移動文件夾。
請?jiān)诹⒓创翱诶镌囇菰摵瘮?shù)(用你文件的實(shí)際名稱替換示例名稱)。這里有些需要考慮的注意事項(xiàng):
①在New_pathname里的文件名稱不要指向已經(jīng)存在的文件
Name 'C:\System.1st ' As 'C:\test.txt'
因?yàn)槲募﨏:\test.txt已經(jīng)存在于C盤,VB將顯示錯(cuò)誤信息:“文件已存在”,同樣,如果你要重命名的文件不存在的話,就會出現(xiàn)“文件未找到”的錯(cuò)誤信息。

②如果New_pathname已經(jīng)存在,并且和Old_pathname不同,函數(shù)Name必要時(shí)將文件移動到新文件夾并且更改它的名稱。
Name 'C:\System.1st ' As 'D:\test.txt'
因?yàn)槲募est.txt在D盤的根目錄下并不存在,VB將C:\System.1st
移動到指定的驅(qū)動盤,然而,并不重命名該文件。(本段與上面的內(nèi)容似乎矛盾,而且未能試驗(yàn)成功,未知是原書失誤與否。讀者應(yīng)仔細(xì)驗(yàn)證)

③如果New_pathname和Old_pathname指向不同的目錄,以及提供的文件名稱相同,那么Name函數(shù)將指定的文件移到新地址,不用更改文件名。
Name 'D:\test.txt ' As 'C:\DOS\test.txt'
上面的指令將test.txt移動到C盤下的DOS文件夾里。

技巧:你不能重命名開啟的文件
在重命名文件之前,你必須關(guān)閉該文件。文件名稱里不能包含通配符“*”或者“?”。

檢查文件或文件夾是否存在(Dir 函數(shù))

Dir函數(shù),返回文件或者文件夾名稱,語法如下:

Dir[(pathname[, attributes])]

Dir函數(shù)的兩個(gè)參數(shù)都是可選的,pathname是文件或文件夾名稱,對于參數(shù)attributes,你可以下列常量或者數(shù)值之一:

Dir函數(shù)常用來檢查某個(gè)文件或文件夾是否存在,如果不存在,那么就返回空字符串(””)。我們到立即窗口里試驗(yàn)幾個(gè)Dir函數(shù)的練習(xí):

1. 在立即窗口,輸入下述指令:

?Dir('C:\', vbNormal)

你一旦按下回車鍵,VB就會返回該文件夾下的第一個(gè)文件名。普通文件(vbNormal)就是除隱藏,卷標(biāo),目錄,文件夾或系統(tǒng)文件之外的任何文件。
要返回當(dāng)前目錄下的其它文件名稱的話,就使用不帶參數(shù)的Dir函數(shù):
?Dir (并且回車)
2. 在立即窗口里輸入下列指令,并且在你回車時(shí)檢查其結(jié)果:

mfile = Dir('C:\', vbHidden)?mfilemfile = Dir?mfilemfile = Dir?mfile


3. 在立即窗口輸入下述指令:

If Dir('C:\stamp.bat') = '' Then Debug.Print '文件未找到。'

因?yàn)閟tamp.bat文件不在C盤上,所以VB就在立即窗口里寫下文本信息“文件未找到?!?/p>

4. 在立即窗口輸入下述語句,可以檢查某文件是否存在于某驅(qū)動盤上:

If Dir ('C:\Autoexec.bat') <>'' Then Debug.Print '該文件不在C盤上。'

函數(shù)Dir允許你在文件路徑名中使用通配符——星號(*)代表多個(gè)字符,問號(?)代表單個(gè)字符:

例如,要在WINDOWS文件夾中查找所有配置設(shè)置的文件,你可以查找所有的INI文件,如下:

?Dir('C:\WINNT\*.ini', vbNormal)system.ini?dir WIN.INI?dirWINFILE.INI?dir control.ini?dir EQUIP32.INI?dirsxpwin32.ini

下面顯示的過程在立即窗口里寫上了確定目錄下的文件名稱。函數(shù)LCase$讓文件名稱顯示為小寫字母。

1. 打開一新工作簿,并保存為Chap08.xls

2. 切換到VB編輯器窗口并重命名VBA工程為FileMan
3. 插入新模塊,重命名為DirFunction
4. 輸入下述VBA過程:

Sub MyFiles()Dim mfile As StringDim mpath As Stringmpath = InputBox('Enter pathname,e.g., C:\Excel')If Right(mpath, 1) <> '\' Then mpath = mpath & '\'mfile = Dir(mpath & '*.*')If mfile <> '' Then Debug.Print 'Files in the ' & mpath _& 'folder'Debug.Print LCase$(mfile)If mfile = '' ThenMsgBox 'No files found.'Exit SubEnd IfDo While mfile <> ''mfile = DirDebug.Print LCase$(mfile)LoopEnd Sub

上面的過程myFiles向用戶詢問文件路徑名。如果該路徑結(jié)尾沒有反斜杠,函數(shù)Right就會將反斜杠附加在路徑名字符串上。接下來,VB在該確定的文件夾里搜索所有文件(*)。如果沒有文件的話,就會有信息顯示,如果文件存在,那么文件名就會被寫入立即窗口。

5. 在同一個(gè)模塊里輸入另外一個(gè)過程:

Sub GetFiles()Dim nfile As StringDim nextRow As IntegernextRow = 1'next row indexWith Worksheets('Sheet1').Range('A1')nfile = Dir('C:\', vbNormal).Value = nfileDo While nfile <> ''nfile = Dir.Offset(nextRow, 0).Value = nfilenextRow = nextRow 1LoopEnd WithEnd Sub

過程GetFiles獲取C盤根目錄下的所有文件名并且將每個(gè)文件名寫入工作表。
4.獲得文件修改的日期和時(shí)間(FileDateTime 函數(shù))

如果你的過程需要知道某文件的最后修改的時(shí)間的話,可以使用函數(shù)FileDateTime:
FileDateTime(文件路徑名)
文件路徑名是個(gè)字符串,明確你要用的文件,并且需要包括驅(qū)動和文件夾的名稱。該函數(shù)返回某文件的日期和時(shí)間印記。日期和時(shí)間的格式取決于視窗控制面板的原始設(shè)置。
我們在立即窗口里來練習(xí)使用該函數(shù):

1. 在立即窗口里輸入:

?FileDateTime('C:\config.sys')

回車后,VB返回下述格式的日期和時(shí)間 5/4/2001 10:52:00 AM
要分開獲取日期和時(shí)間時(shí),可以將函數(shù)FileDateTime作為函數(shù)DateValue或TimeValue的參數(shù)來使用。例如:

?DateValue(FileDateTime('C:\config.sys'))?TimeValue(FileDateTime('C:\config.sys'))

2. 在立即窗口里將下述語句在一行輸入:

If DateValue(FileDateTime('C:\config.sys'))< Date then Debug.Print 'This file was notmodified today.”

Date函數(shù)返回當(dāng)前系統(tǒng)日期,也是視窗控制面板的日期

對話框里設(shè)定的。

獲得文件大小(FileLen 函數(shù))

如果你需要檢查某文件是否能夠存在某磁盤上,那么你應(yīng)該按照下述方式使用FileLen函數(shù):
FileLen(文件路徑名)

FileLen函數(shù)一字節(jié)方式返回文件的大小。如果該文件已打開,那么VB將返回該文件最后一個(gè)保存時(shí)的大小。

假設(shè)你想要獲取Windows目錄下進(jìn)行配置設(shè)置的所有文件的總大?。?/p>

1. 在當(dāng)前工程里插入新模塊,并重命名為FileLenFunction
2. 在代碼窗口了輸入過程TotalBytesIni:

Sub TotalBytesIni()Dim iniFile As StringDim allBytes As LonginiFile = Dir('C:\WINDOWS\*.ini')allBytes = 0Do While iniFile <> ''allBytes = allBytes FileLen('C:\WINDOWS\' & iniFile)iniFile = DirLoopDebug.Print 'Total bytes: ' & allBytesEnd Sub
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
批量將工作簿轉(zhuǎn)換為PDF----2
Dir
Excel-VBA操作文件四大方法(一)
VB6.0中Dir()函數(shù)的使用方法
使用VBA操作文件(2):處理文件的VBA函數(shù)和語句
Dir 函數(shù) (Visual Basic for Applications) | Microsoft...
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服