概述
最近一直在学习python,发现python确实好用,今后应该会主攻python和c#,VBA将主要用于我快速检验数据模型的时候写函数用。
之前答应过要一个小朋友辅导VBA,想了很久,没有比较好的简单易懂的案例。昨天想了想,先写一个文件夹遍历的小程序吧,主要是为了做个引子,同时我想她以后可能会遇到要打开某个文件夹里所有Excel的需求(比如找出每个excel中固定位置的值,然后打印到当前excel中。)。这个宏比较粗糙,作为入门案例比较容易懂。
Excel的内容如下所示:
高亮的单元格用以输入目标文件夹的路径,如 C: , D:MySQL 等等。点击“查询”,则会将指定路径下所有的文件或者子文件夹的名字打印出来;清楚则会将该表的内容清除,但是以上高亮单元格内的内容将被保留。
同时,如果该文件夹不存在,也会报错:由于不存在D:MySQLa 这个文件夹,因此该路径无效。
最后上代码:
Option Explicit
Sub FFInSpecPath(SpecPath As String)
Dim count As Integer
Dim rng As Range
Dim MyFile As String
Set rng = Application.Worksheets("查询文件及文件夹").Range("B2")
MyFile = Dir(SpecPath, vbDirectory)
If MyFile = "" Then
MsgBox ("指定路径下没有文件或文件夹哦!请检查是否漏写 或者指定文件路径不正确!^_^")
End If
Do While MyFile <> ""
MyFile = Dir '第二次读入的时候不用写参数
If MyFile = "" Then
Exit Do '当MyFile为空的时候就说明已经遍历完了,这时退出Do,否则还要运行一遍
End If
rng.Offset(count, 0).Value = MyFile
count = count + 1
Loop
End Sub
Sub Call_FFInSpecPath()
Call InitAll
Call FFInSpecPath(Application.Sheets("查询文件及文件夹").Range("B1").Value)
End Sub
Sub InitAll()
Dim lstPath As String
lstPath = Range("B1").Value
Application.Sheets("查询文件及文件夹").Cells.Select
Selection.ClearContents
Range("A1").Value = "指定文件夹路径"
Range("A2").Value = "该文件夹下所有文件"
Range("B1").Value = lstPath
Range("B1").Select
End Sub
其中,FFInSpecPath( SpecPath as String) 宏是打印出SpecPath下的文件或者子文件夹到当前sheet中。Call_FFInSpecPath 是按钮“查询”点击时调用的。InitAll是按钮“清除”点击时调用的。
最后
以上就是威武西装为你收集整理的【VBA】34. 一个简单的VBA宏(含按钮)的全部内容,希望文章能够帮你解决【VBA】34. 一个简单的VBA宏(含按钮)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复