Excel VBA遍历文件

休息日,无聊的上Excel Home看看有啥东东可学习,有啥问题能帮帮忙。看到很多帖子都是求助遍历特定文件夹下文件的实现方法。有朋友说03版Excel有FileSearch对象可以遍历文件夹下文件,07版中没有了FileSearch对象,不知如何遍历文件。我想03版能做的事,07版肯定能做啊,要不然不是倒退?于是搜寻一番,还真是取消了FileSearch对象啊!不过还有Scripting.FileSystemObject可以用,实现如下:

Sub main()
    Dim fs, fold, fls, fl
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set fold = fs.getfolder(folderpath) 'folderpath指文件夹路径,string型,实践中自行替换
    Set fls = fold.Files
    For Each fl In fls
        If InStr(fl.Name, ".xls") <> 0 Then '避免打开非Excel文件
            Workbooks.Open fl.Path  '打开文件
            statements '处理代码
            Workbooks(fl.Name).Close Savechanges:=True  '关闭文件
        End If
    Next
End Sub

    而后又发现Excel VBA内置的Dir()函数同样也可以,实现如下:

Sub main()
  Dim nm As String
  nm = Dir(folderpath & "*.xls*") 'folderpath指文件夹路径,string型,实践中自行替换
  Do While Len(nm) <> 0
    Workbooks.Open folderpath & nm

    statements '处理代码

    Workbooks(nm).Close Savechanges:=True
    nm = Dir()
  Loop
End Sub

    总结,编程思想都OO化了,搞的人总想着有什么对象去解决问题,孰不知OO不是全部,它也只不过是结构化的封装。就以上两种实现而言,我认为Dir函数更加效率,因为它是内置的,无需去做外部引用,而且它可以使用通配符。另外,FSO模型包含在脚本类型库 (Scrrun.dll) 中,如果电脑中没有装载脚本类型库,则FSO不可用,但不可否认,FSO模型提供了一套完备的文件处理结构,使得编码更加简单直观。

转载于:https://www.cnblogs.com/Nina-piaoye/archive/2013/04/09/3010280.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++中的explicit关键字

在C程序中很少有人去使用explicit关键字&#xff0c;不可否认&#xff0c;在平时的实践中确实很少能用的上。再说C的功能强大&#xff0c;往往一个问题可以利用好几种C特性去解决。但稍微留心一下就会发现现有的MFC库或者C标准库中的相关类声明中explicit出现的频率是很高的。了…

pline加点lisp_用Autolisp 在AutoCAD中实现多种曲线的绘制

用Autolisp 在AutoCAD中实现多种曲线的绘制一、引言&#xff1a;AutoCAD自1982年由Autodesk公司推出以来&#xff0c;经历了20年的发展更新&#xff0c;目前&#xff0c;已深入到包括机械、建筑、服装、航天航空、地质气象等等的众多领域中。AutoCAD已成为众多工程设计人员的首…

python从小白到大牛pdf 下载 资源共享_Kotlin从小白到大牛 (关东升著) 中文pdf高清版[12MB]...

本书是一本Kotlin语言学习立体教程&#xff0c;主要内容包括&#xff1a;Kotlin语法基础、Kotlin编码规范、数据类型、字符串、运算符、程序流程控制、函数、面向对象基础、继承与多态、抽象类与接口、高阶函数、Lambda表达式、数组、集合、函数式编程API、异常处理、线程、协程…

MySQL——基本配置

一、新建配置文件 在MySQL的安装目录下D:\Mysql\mysql-8.0.28-winx64\bin中新建一个文本文件&#xff0c;文件内容如下&#xff1a; [mysql] default-character-setutf8[mysqld] character-set-serverutf8 default-storage-engineINNODB sql_modeSTRICT_TRANS_TABLES,NO_ZERO_…

iphone win7无法识别_win7系统电脑不能识别iphone苹果设备的解决方法

win7系统使用久了&#xff0c;好多网友反馈说win7系统电脑不能识别iphone苹果设备的问题&#xff0c;非常不方便。有什么办法可以永久解决win7系统电脑不能识别iphone苹果设备的问题&#xff0c;面对win7系统电脑不能识别iphone苹果设备故障问题&#xff0c;我们只需要1)你的苹…

SOCKET bind INADDR_LOOPBACK和INADDR_ANY的区别

今天写程序时候&#xff0c;服务器端启动了&#xff0c;然后客户端总是连接不上&#xff0c;connect返回错误号是10061&#xff0c;服务器积极拒绝请求。 用telnet连接一下端口&#xff0c;发现服务端服务没有开启&#xff0c;但是我程序是启动的&#xff0c;用netstat -a 命令…

在mac上用文本编辑器写python_Mac系统Python解释器、PyCharm编辑器安装及使用方法详解...

『环境配置』- 工欲善其事&#xff0c;必先利其器 视频讲解教程&#xff1a;[Mac系统Python开发环境配置教程详解&#xff08;Python技术客栈&#xff09;](https://www.bilibili.com/video/av80761677)【开发环境配置】Mac系统Python开发环境配置教程详解&#xff08;Python技…

hdu 2149 巴什博弈

http://acm.hdu.edu.cn/showproblem.php?pid2149 分析&#xff1a;就是巴什博弈的概念。 题目要求&#xff1a;对于每组数据&#xff0c;在一行里按递增的顺序输出Lele第一次可以加的价。两个数据之间用空格隔开。如果Lele在第一次无论如何出价都无法买到这块土地&#xff0c;…

MySQL——数据库和表的增删改查

1、DDL操作数据库 ①查询 SHOW DATABASES;②创建 创建数据库 CREATE DATABASE 数据库名称; 创建数据库(判断&#xff0c;如果则创建) CREATE DATABASE IF NOT EXISTS 数据库名称;③删除 删除数据库 DROP DATABASE 数据库名称; 删除数据库(判断&#xff0c;如果存在则删除) DRO…

c_str()

1.string类成员函数c_str()的原型: const char *c_str()const;//返回一个以null终止的c字符串 2.c_str()函数返回一个指向正规c字符串的指针,内容和string类的本身对象是一样的,通过string类的c_str()函数能够把string对象转换成c中的字符串的样式; c_str()函数返回一个指向正规…

45个极具冲击力的WordPress摄影网站模板

原文地址&#xff1a;http://www.goodfav.com/zh/wordpress-photography-website-templates-3577.html 互联网为摄影师和有创意的人想向世界展示自己最好的作品提供了最好的平台。你可以整合社会化媒体可以分享你的世界各地的图片。很多人都会认为&#xff0c;美丽的图画应该有…

python生成多个列表_python生成多个只含0,1元素的随机数组或列表(代码)

python生成多个只含0,1元素的随机数组或列表&#xff08;代码&#xff09; >>> import numpy as np >>> myarray np.random.randint(0,2,10)输出只含0,1元素的一维数组,长度为10 >>> myarray array([1, 1, 1, 0, 1, 0, 0, 1, 1, 0]) >>> m…

Java学习笔记——反射

1、反射概述 Java反射机制&#xff1a;是指在运行时去获取一个类的变量和方法信息。然后通过获取到的信息来创建对象&#xff0c;调用方法的一种机制。由于这种动态性&#xff0c;可以极大地增强程序的灵活性。2、获取Class类的对象 我们要想通过反射去使用一个类&#xff0c…

Linux NULL定义

下面是/usr /include/linux下的stddef.h文件中的NULL定义&#xff1a;#undef NULL#if defined(__cplusplus)#define NULL 0#else#define NULL ((void *)0)#endif

Linux内核--网络协议栈深入分析(五)--套接字的绑定、监听、连接和断开

本文分析基于Linux Kernel 3.2.1 原创作品&#xff0c;转载请标明http://blog.csdn.net/yming0221/article/details/7996528 更多请查看专栏http://blog.csdn.net/column/details/linux-kernel-net.html 作者&#xff1a;闫明 1、套接字的绑定 创建完套接字服务器端会在应用层使…

pc模式 华为mate30_号称“重构想象”的华为Mate30系列,到底有多颠覆?一睹为快...

9月19日迎来了华为全球发布会&#xff0c;和9月11日的苹果新品发布会时间挨得非常近&#xff0c;大家感受到了什么吗&#xff1f;华为Mate30系列于北京时间9月19日晚上8点在慕尼黑正式亮相了&#xff0c;以“重构想象”为主题&#xff0c;发布了4款新机&#xff1a;Mate30、Mat…

python数据分析师书籍_如何自学成为数据分析师

展开全部 第1本《谁说菜2113鸟不会数据5261分析入门篇》 很有趣的数据分析书&#xff01;基本看过就能明白4102&#xff0c;以小说的1653形式讲解&#xff0c;很有代入感。包含了数据分析的结构化思维、数据处理技巧、数据展现的技术&#xff0c;很能帮我们提升职场竞争能力。找…

uvc摄像头

样品 1e4e:0109 第一批次 1e4e:0102 第二批次样品 1871:0101 1908:2311 uvc列表 www.ideasonboard.org/uvc/ www.ideasonboard.org/uvc/faq/

Java学习笔记——模块化

1、模块化概述&#xff1a; 无论是运行一个大型的软件系统&#xff0c;还是运行一个小的程序&#xff0c;即使程序 只需要使用Java的部分核心功能&#xff0c;JVM也要加载整个JRE环境。为了 让Java实现轻量化&#xff0c;Java9正式的推出了模块化统。Java被拆分成N 多个模块&a…

SDO_GEOMETRY Object Type

一、定义 SDO_GEOMETRY是MDSYS Schema下用户自定义的对象类型&#xff0c;用户在创建自己的数据表时&#xff0c;可以使用这种类型作为字段类型。使用了这种类型字段的数据表必须包含另外一个字段或者多个字段组合作为此表的唯一主键。这种类型的数据表&#xff0c;通常叫做空间…