會員登錄 立即注冊

搜索

打印 上一主題 下一主題
開啟左側

[其它] VBA的文件操作

[復制鏈接]
跳轉到指定樓層
樓主
etthink 發表于 2019-10-29 20:06:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
樓主
etthink
2019-10-29 20:06:26 114 0 看樓主
文件操作是指操作系統級別的,不是打開文件,對文件內容操作。我們當然可以創建文件系統對象操作文件,但是,最簡單的還是使用VBA提供的標準的文件操作功能。最常見的就是文件或文件夾的增、刪、改。

1、創建和刪除文件夾(增、刪):

      創建:MkDir path,例如:MkDir ThisWorkbook.Path & "\Temp"

      刪除:RmDir path,例如:RmDir ThisWorkbook.Path & "\Temp"

2、復制文件(增):FileCopy source, destination,例如:

      FileCopy ThisWorkbook.Path & "\old" , ThisWorkbook.Path & "\new"

3、刪除文件(刪):Kill pathname,例如:

      myFile = ThisWorkbook.Path & "\song.xls"

      If Dir(myFile) <> "" Then Kill myFile

4、重命名文件或者文件夾(改):Name oldpathname As newpathname,例如:

      Name ThisWorkbook.Path & "\old" As ThisWorkbook.Path & "\new"

5、最后說一下Dir這個函數,最常用的是判斷文件或者文件夾是否存在,例如:

      if Dir(ThisWorkbook.Path & "\song.xls", vbNormal) <> "" then

其實這個函數功能很強大,可以根據需要,返回指定路徑下所有文件名,對于處理多個文件特別有用。以前做過一個文字替換工具,替換文件夾下所有Word文件中的相應文字,就是用這個函數返回所有文件名的。

Dir[(pathname[, attributes])]

參數pathname是可選的,用來指定文件名的字符串表達式,可能包含目錄或文件夾、以及驅動器。如果沒有找到pathname,則會返回零長度字符串 ("")。

參數attributes是可選的,常數或數值表達式,其總和用來指定文件屬性,如下表所示。如果省略,則會返回不包含屬性的匹配文件。

常數
   


   

描述

vbNormal
   

0
   

(缺省) 指定沒有屬性的文件。

vbReadOnly
   

1
   

指定無屬性的只讀文件。

vbHidden
   

2
   

指定無屬性的隱藏文件。

VbSystem
   

4
   

指定無屬性的系統文件,在Macintosh中不可用。

vbVolume
   

8
   

指定卷標文件;如果指定了其它屬性,則忽略。vbVolume 在Macintosh中不可用。

vbDirectory
   

16
   

指定無屬性文件及其路徑和文件夾。

vbAlias
   

64
   

指定的文件名是別名,只在Macintosh上可用。

注意 在第一次調用Dir函數時,必須指定pathname,否則會產生錯誤。下面是個例子:

    Sub mydir()
        Dim mydir As String
        Dim Fno As Integer
        
        Fno = 1
        Range("A:A").ClearContents
        mydir = Dir(ThisWorkbook.Path & "\*.xls", vbNormal)
        Do While mydir <> ""
            Cells(Fno, 1) = mydir
            mydir = Dir
            Fno = Fno + 1
        Loop
    End Sub

mydir過程使用Dir函數在代碼所在工作簿的文件夾中查找所有的Excel文件,找到后寫入到工作表的A列單元格中。Dir函數會返回匹配 pathname參數的第一個文件名,若想得到其他匹配pathname參數的文件名,需再一次調用Dir函數,且不要使用參數。如果已沒有合乎條件的文件,則Dir函數會返回一個零長度字符串 ("")。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友 微信微信
收藏收藏 轉播轉播 分享分享 分享淘帖 贊 踩
歡迎大家多發帖,參與討論,增進彼此了解。
  • 您可能感興趣
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則 返回列表

查看:114 | 回復:0

教育技術論壇,教育技術人交流的專業社區,專注于教育技術應用與推廣!讓更多的人了解教育技術,用好教育技術!
關于我們
社區簡介
發展歷程
聯系我們
社區管理
新手指南
申請版主
申請開店
贊助我們
微信贊助
支付寶贊助

官方微信

手機版

手機APP

站點統計| Archiver| 手机版| 小黑屋| 幫助| 教育技術論壇   
聯系電話:13355549901 地址:安徽省淮南市田家庵區朝陽街道 郵箱:[email protected] ICP備案號: ( 皖ICP備10014945號-4 )
Copyright © 2001-2013 Comsenz Inc. All Rights Reserved.   Powered by Discuz! X3.2
快速回復 返回頂部 返回列表

皖公網安備 34040302000242號

意甲球员