ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: yuanzhuping

VBA常用技巧代码解析

    [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-10 19:54 | 显示全部楼层

第10部分 文件操作

本帖已被收录到知识树中,索引项:开发帮助和教程
技巧180         使用WSH处理文件
180-6        创建文件夹
       如果需要创建一个文件夹,可以使用CreateFolder方法,如下面的代码所示。
  1. #001  Sub CreFolder()
  2. #002      Dim MyFile As Object
  3. #003      On Error Resume Next
  4. #004      Set MyFile = CreateObject("Scripting.FileSystemObject")
  5. #005      MyFile.CreateFolder (ThisWorkbook.Path & "\ABC")
  6. #006      Set MyFile = Nothing
  7. #007  End Sub
复制代码
代码解析:
       CreFolder过程使CreateFolder方法在示例文件所在文件夹中创建一个“ABC”文件夹。
       第4行代码使用CreateObject函数创建FileSystemObject对象并将该对象赋给变量MyFile。
       第5行代码使用CreateFolder方法创建文件夹。应用于FileSystemObject对象的CreateFolder方法创建一个文件夹,语法如下:
       object.CreateFolder(foldername)
       参数object是必需的, FileSystemObject对象的名字。
       参数foldername是必需的,字符串表达式,指明要创建文件夹的名称和路径。
       运行CreFolder过程将在示例文件所在文件夹中创建一个“ABC”文件夹。

180-6 创建文件夹.rar

6.58 KB, 下载次数: 710

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-10 20:03 | 显示全部楼层

第10部分 文件操作

技巧180         使用WSH处理文件
180-7        复制文件夹
       如果需要复制文件夹,可以使用CopyFolder方法,如下面的代码所示。
  1. #001  Sub CopyFolder()
  2. #002      Dim MyFile As Object
  3. #003      Set MyFile = CreateObject("Scripting.FileSystemObject")
  4. #004      MyFile.CopyFolder ThisWorkbook.Path & "\ABC", ThisWorkbook.Path & "\123"
  5. #005      Set MyFile = Nothing
  6. #006  End Sub
复制代码
代码解析:
       CopyFolder过程使CopyFolder方法将示例文件所在文件夹中的“ABC”文件夹复制并改名为“123”文件夹。
       第4行代码使用CreateObject函数创建FileSystemObject对象并将该对象赋给变量MyFile。
       第5行代码使用CopyFolder方法复制文件夹。应用于FileSystemObject对象的CreateObject方法从一个地方递归地复制一个文件夹到另一个地方,语法如下:
       object.CopyFolder source, destination[, overwrite]
       参数object是必需的, FileSystemObject对象的名字。
       参数source是必需的,指明一个或多个被复制文件夹的字符串文件夹说明,可以包括通配符。
       参数destination是必需的,被复制文件夹和子文件夹的接受端的字符串,不允许有通配符。
       参数overwrite是可选的,表示已存在的文件夹是否被覆盖。如果为True,文件被覆盖,如果为False,文件不被覆盖。缺省值为True。
       如果参数source中包含通配符或参数destination以路径分隔符(\)为结尾,则认为参数destination是一个已存在的文件夹,在其中复制相匹配的文件夹和子文件夹。否则认为参数destination是一个要创建的文件夹的名字。
       运行CopyFolder过程将示例文件所在文件夹中的“ABC”文件夹复制并改名为“123”文件夹。

180-7 复制文件夹.rar

10.58 KB, 下载次数: 715

TA的精华主题

TA的得分主题

发表于 2009-6-10 21:43 | 显示全部楼层

好东西

感谢楼主的无私奉献,期待第十部分的下载包

TA的精华主题

TA的得分主题

发表于 2009-6-10 23:22 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-6-11 09:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

For Each ... Next

谢谢搂主,写得不错,受益很深!
一事请教,能否对for each ... next 做一个分析和举例
#001  Sub RngLike()
#002      Dim rng As Range
#003      Dim a As Integer
#004      a = 1
#005      With Sheet2
#006          .Range("A:A").ClearContents
#007          For Each rng In .Range("B1:E1000")
#008              If rng.Text Like "*a*" Then
#009                  .Range("A" & a) = rng.Text
#010                  a = a + 1
#011              End If
#012          Next
#013      End With
#014  End Sub
我搞不清楚For Each X In Y,X and Y是啥关系,cell in range, range in range...?

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-11 10:01 | 显示全部楼层

第10部分 文件操作

技巧180         使用WSH处理文件
180-8        移动文件夹
       如果需要移动文件夹,可以使用MoveFolder方法,如下面的代码所示。
  1. #001  Sub MoveFolder()
  2. #002      Dim MyFile As Object
  3. #003      On Error Resume Next
  4. #004      Set MyFile = CreateObject("Scripting.FileSystemObject")
  5. #005      MyFile.MoveFolder ThisWorkbook.Path & "\123", "F:\123"
  6. #006      Set MyFile = Nothing
  7. #007  End Sub
复制代码
代码解析:
       MoveFolder过程使MoveFolder方法将示例文件所在文件夹中的“123”文件夹移动到F盘中。
       第4行代码使用CreateObject函数创建FileSystemObject对象并将该对象赋给变量MyFile。
       第5行代码使MoveFolder方法移动文件夹。应用于FileSystemObject对象的MoveFolder方法将一个或多个文件夹从一个地方移动到另一个地方,语法如下:
       object.MoveFolder source, destination
       参数object是必需的, FileSystemObject对象的名字。
       参数source是必需的,指明一个或多个要移动文件夹的字符串文件夹说明,在路径的最后部件中可以包括通配符。
       参数destination是必需的,一个或多个文件夹要移动到的目标路径,不能包含通配符。
       如果参数source中包含通配符或参数destination以路径分隔符(\)为结尾,则认为参数destination是一个已存在的文件夹,在此文件夹中移动相匹配的文件。否则认为参数destination是一个要创建的文件夹的名字。
       运行MoveFolder过程将示例文件所在文件夹中的“123”文件夹移动到F盘中。

180-8 移动文件夹.rar

6.85 KB, 下载次数: 795

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-11 10:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

第10部分 文件操作

技巧180         使用WSH处理文件
180-9        删除文件夹
       如果需要删除一个文件夹,可以使用DeleteFolder方法,如下面的代码所示。
  1. #001  Sub DelFolder()
  2. #002      Dim MyFile As Object
  3. #003      On Error Resume Next
  4. #004      Set MyFile = CreateObject("Scripting.FileSystemObject")
  5. #005      MyFile.DeleteFolder ThisWorkbook.Path & "\123"
  6. #006      Set MyFile = Nothing
  7. #007  End Sub
复制代码
代码解析:
       DelFolder过程使DeleteFolder方法删除示例文件所在文件夹中的“123”文件夹。
       第4行代码使用CreateObject函数创建FileSystemObject对象并将该对象赋给变量MyFile。
       第5行代码使用DeleteFolder方法删除文件。应用于FileSystemObject对象的DeleteFolder方法删除一个指定的文件夹和其中的内容,语法如下:
       object.DeleteFolder folderspec[, force]
       参数object是必需的, FileSystemObject对象的名字。
       参数filespec是必需的,指明要删除的文件夹的名称,可以在最后的路径部件中包含通配符。
       参数force是可选的,如果要删除具有只读属性设置的文件夹,其值为True。如果其值为False(缺省),则不能删除具有只读属性设置的文件夹。
       运行DelFolder过程删除示例文件所在文件夹中的“123.xls”文件夹。

180-9 删除文件夹.rar

10.81 KB, 下载次数: 692

TA的精华主题

TA的得分主题

发表于 2009-6-11 10:51 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-6-11 14:28 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-6-11 14:39 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-28 03:23 , Processed in 0.057335 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表