会员登录 立即注册

打印 上一主题 下一主题
开启左侧

[其它] VBA的文件操作

[复制链接]
跳转到指定楼层
楼主
etthink 发表于 2019-10-29 20:06:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
楼主
etthink
2019-10-29 20:06:26 168 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函数会返回一个零长度字符串 ("")。


欢迎大家多发帖,参与讨论,增进彼此了解。
  • 您可能感兴趣
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表

查看:168 | 回复:0

教育技术论坛,教育技术人交流的专业社区,专注于教育技术应用与推广!让更多的人了解教育技术,用好教育技术!
关于我们
社区简介
发展历程
联系我们
社区管理
新手指南
申请版主
申请开店
赞助我们
微信赞助
支付宝赞助

官方微信

手机版

手机APP

联系电话:13355549901 地址:安徽省淮南市田家庵区朝阳街道 邮箱:sf@etthink.com ICP备案号: ( 皖ICP备10014945号-4 )
Copyright © 2001-2013 Comsenz Inc. All Rights Reserved.   Powered by Discuz! X3.2
快速回复 返回顶部 返回列表

皖公网安备 34040302000242号