vba字典

vba遍历指定的文件夹

允我心安 提交于 2020-03-06 18:04:37
Sub filelist() Dim MyName, Dic, Did, i, t, F, TT, MyFileName 'On Error Resume Next Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(0, "选择文件夹", 0, 0) If Not objFolder Is Nothing Then lj = objFolder.self.Path & "\" Set objFolder = Nothing Set objShell = Nothing t = Time Set Dic = CreateObject("Scripting.Dictionary") '创建一个字典对象 Set Did = CreateObject("Scripting.Dictionary") Dic.Add (lj), "" i = 0 Do While i < Dic.Count Ke = Dic.keys '开始遍历字典 MyName = Dir(Ke(i), vbDirectory) '查找目录 Do While MyName <> "" If MyName <> "." And MyName <> ".." Then If (GetAttr(Ke

全民一起VBA实战篇第五课:外部文件处理技巧

て烟熏妆下的殇ゞ 提交于 2020-02-07 04:05:26
题目一 用窗口选择/打开文件 Sub get 方法 ( ) Dim fname fname = Application.GetOpenFilename ( ) '获取选择的文件名 If fname <> False Then '判断是否有选中,如果点了取消,则退出程序 '否则运行文件 MsgBox fname '返回字符串 Workbooks. Open fname '这个过程才是打开 End If End Sub 有不少可选参数可以设置 Sub get 方法 ( ) Dim fname fname = Application.GetOpenFilename ( _ filefilter : = "EXCEL文件 , * .xlsx ; * .xlsm , 全部 , * " , _ FilterIndex : = 1 , _ Title : = "请选择一个文件" , _ MultiSelect : = True ) '过滤器选择EXCEL文件或者全部文件 '默认选择的是第一个,EXCEL文件 '对话框的标题是"请选择一个文件" '支持多选 If IsArray ( fname ) Then '判断是否有选中,选中一个也是数组 For Each s In fname MsgBox s Workbooks. Open s '这个过程才是打开 Next s End If End Sub

Word VBA(批量复制Excel表格和Word表格到Word中)

拟墨画扇 提交于 2020-01-17 14:14:07
unction Test() '使用双字典 SearchPath = FolderDialog("请选择文件夹") If SearchPath = "" Then Exit Function End If WordName = SplitPath(CStr(SearchPath), 1) Dim sFile As Object, fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Set logFile = fso.CreateTextFile(SearchPath & WordName & "日志.txt", True) Dim MyWord As Word.Application Set MyWord = New Word.Application MyWord.Application.ScreenUpdating = False MyWord.Application.Visible = True MyWord.Application.DisplayAlerts = wdAlertsNone Set myDoc = MyWord.Documents.Add With MyWord.ActiveDocument.PageSetup .Orientation = wdOrientLandscape

Excel VBA 入门(零)

和自甴很熟 提交于 2019-11-29 11:38:20
本教程所用系统环境: Windows 10 Excel 2013 1. 添加开发工具 打开Excel,依然找到“文件”->“选项”->“自定义功能区”,在右侧主选项卡下面的选项中,找到“开发工具”,在前面的小框打勾,确定。返回Excel,即可在菜单栏右侧看到有开发工具: 2. 使用VBE VBE即VBA的编辑环境。通常有两种方式可以进入 菜单栏 -> 开发工具 -> Visual Basic 快捷键:Alt + F11 3. 第一个VBA程序 进入VBE后,在菜单栏依次选择“插入”->“模块”,然后光标会自动定位到代码窗口中,VBA中的代码即在些编写。 VBA常使用“过程”来组织代码(另一种方式是“函数”,后面会介绍)。过程用 Sub sub_name() ' '中间这里是我们要实现各种操作的VBA代码 ' End Sub 表示。其中 Sub 和末尾的 End Sub 是必须的固定形式,sub_name是过程名称,后面的括号 () 是必须的。VBA中允许使用中文作为过程名称,但建议还是尽量使用英文为好。 第一个VBA程序 Sub Hello_World() Debug.Print "Hello, World!" MsgBox "Hello, World!" End Sub 这个过程的名字是 Hello_World 。运行VBA代码有三种方式:

VBA中Dictionary对象使用(Key,Value)

风流意气都作罢 提交于 2019-11-26 15:39:17
Dim dict ' 创建Dictionary Set dict = CreateObject ( " Scripting.Dictionary " ) ' 增加项目 dict.Add " A " , 300 dict.Add " B " , 400 dict.Add " C " , 500 ' 统计项目数 n = dict.Count ' 删除项目 dict.Remove ( " A " ) ' 判断字典中是否包含关键字 dict.exists ( " B " ) ' 取关键字对应的值,注意在使用前需要判断是否存在key,否则dict中会多出一条记录 Value = dict.Item( " B " ) ' 修改关键字对应的值,如不存在则创建新的项目 dict.Item( " B " ) = 1000 dict.Item( " D " ) = 800 ' 对字典进行循环 k = dict.keys v = dict.Items For i = 0 To dict.Count - 1 key = k(i) Value = v(i) MsgBox key & Value Next ' 删除所有项目 dict.Removeall 实例: Sub 宏1() Set dic = CreateObject ( " Scripting.Dictionary " ) ' 字典 For i = 1