如果需要使用“打开”、“打印”等Excel内置对话框已经具有的功能,可以使用代码直接调用这些内置的对话框,如下面的代码所示。

#001  Sub DialogOpen()

#002      Application.Dialogs(xlDialogOpen).Show arg1:=ThisWorkbook.Path & "\*.xls"

#003  End Sub

代码解析:

DialogOpen过程显示内置的“打开”对话框并选定示例所在的文件夹。

显示内置对话框语法如下:

Application.Dialogs(xlDialogConst).Show

Dialogs集合代表所有的内置对话框,每个Dialog对象代表一个内置对话框,不能新建内置对话框或向该集合中添加内置对话框。

参数xlDialogConst是内置对话框的内置常量,每个常量都以“xlDialog”开头,其后是对话框的名称,如“打开”对话框的常量为“xlDialogOpen”。常用内置对话框的内置常量如表格 77‑1所示。

常量

说明

xlDialogActiveCellFont

476

单元格格式(字体)

xlDialogBorder

45

单元格格式(边框)

xlDialogCellProtection

46

单元格格式(保护)

xlDialogDeleteFormat

111

单元格格式(数字)

xlDialogFormatNumber

42

单元格格式(数字)

xlDialogPatterns

84

单元格格式(图案)

xlDialogClear

52

清除

xlDialogColumnWidth

47

列宽

xlDialogRowHeight

127

行高

xlDialogConditionalFormatting

583

条件格式

xlDialogDefineName

61

定义名称

xlDialogDefineStyle

229

样式

xlDialogDisplay

27

显示选项

xlDialogFont

26

字体

xlDialogSetBackgroundPicture

509

工作表背景

xlDialogInsert

55

插入

xlDialogInsertHyperlink

596

插入超链接

xlDialogInsertPicture

342

插入图片

xlDialogNew

119

新建工作簿

xlDialogOpen

1

打开

xlDialogSaveAs

5

另存为

xlDialogWorkbookCopy

283

移动或复制工作表(建立副本)

xlDialogWorkbookInsert

354

插入工作表

xlDialogWorkbookMove

282

移动或复制工作表

xlDialogWorkbookName

386

重命名工作表

xlDialogWorkbookNew

302

新建工作表

xlDialogWorkbookProtect

417

保护工作簿

xlDialogPageSetup

7

页面设置

xlDialogPrint

8

打印内容

xlDialogPrinterSetup

9

打印机设置

xlDialogPrintPreview

222

打印预览

xlDialogSetPrintTitles

23

设置打印标题

xlDialogRun

17

xlDialogTable

41

模拟运算表

xlDialogSendMail

189

发送邮件

表格 77‑1       内置对话框的内置常量

显示内置对话框使用Show方法,应用于Dialog对象的Show方法语法如下:

expression.Show(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)

参数expression是必需的,返回Dialog对象之一。

参数arg1到参数arg30是可选的,仅应用于内置对话框,是命令的初始参数。若要查找要设置的参数,请在内置对话框参数列表中查找对应的对话框常量。

运行alogOpen过程,显示内置的“打开”对话框,并且直接选定示例所在的文件夹,如图 77‑1所示。

1-1 获取选定文件的文件名

如果只希望获取用户在显示的内置 “打开”对话框中选定文件的文件名,而不想真正打开该文件,那么可以使用GetOpenFilename方法,如下面的代码所示。

#001  Sub OpenFilename()

#002      Dim Filename As Variant

#003      Dim mymsg As Integer

#004      Dim i As Integer

#005      Filename = Application.GetOpenFilename(Title:="删除文件", MultiSelect:=True)

#006      If IsArray(Filename) Then

#007          mymsg = MsgBox("是否删除所选文件?", vbYesNo, "提示")

#008          If mymsg = vbYes Then

#009              For i = 1 To UBound(Filename)

#010                  Kill Filename(i)

#011              Next

#012          End If

#013      End If

#014  End Sub

代码解析:

OpenFilename过程使用GetOpenFilename方法显示标准的内置“打开”对话框,获取用户选定文件的文件名后使用Kill语句删除。

GetOpenFilename方法显示标准的内置“打开”对话框,获取文件名,语法如下:

expression.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

参数expression是必需的,返回一个Application对象。

参数FileFilter是可选的,指定文件筛选条件的字符串。如果省略,则默认参数值为“所有文件(*.*)”。

参数FilterIndex是可选的,指定默认文件筛选条件的索引号,取值范围为 1 到由 FileFilter 所指定的筛选条件数目。如果省略,或者取值大于可用筛选数目,则采用第一个文件筛选条件。

参数Title是可选的,指定对话框的标题。如果省略,则使用“打开”作为标题。

参数ButtonText是可选的,仅用于Macintosh。

参数MultiSelect是可选的,如果该值为True,则允许选定多个文件名,如果该值为False,则只允许选定单个文件名。默认值为False。

第5行代码显示标准的“打开”对话框,将对话框的标题设置为“删除文件”,将MultiSelect参数设置为True,允许选定多个文件。

第6行代码,获得返回值。当用户选定文件后,返回的是选定的文件名或用户输入的文件名。因为MultiSelect参数已设置为True,所以返回值将是一个包含所有选定文件名的数组(即使仅选定了一个文件名)。如果用户取消了对话框,则该值为False。

第8行到第12行代码,经询问用户后使用Kill语句从磁盘中删除用户选定的文件。

运行OpenFilename过程,显示标准的内置“打开”对话框,删除用户选定的文件,如所图 77‑2示。

图 77‑2   获取用户选定文件的文件名

注意 VBA中数组下界默认从0开始,但使用GetOpenFilename方法选择多个文件时返回的包含选定文件名的数组下界是从1开始。

dialogs打开对话框选定文件夹,getopenfilename获取文件名的更多相关文章

  1. 使用OpenFileDialog打开文件和使用FolderBrowserDialog选定文件夹

    选定文件夹 string foldPath = ""; FolderBrowserDialog dialog = new FolderBrowserDialog(); dialog ...

  2. atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php

    atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服 ...

  3. cocos2d-x3.2下获取文件夹下所有文件名的方法

    这里提供一个函数获取文件夹下所有文件名的方法,直接上代码了. 原文地址:http://blog.csdn.net/qqmcy/article/details/36184733 // //  Visib ...

  4. Qt打开外部程序和文件夹需要注意的细节(Qt调用VC写的动态库,VC需要用C的方式输出函数,否则MinGW32编译过程会报错)

    下午写程序中遇到几个小细节,需要在这里记录一下. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 QProcess *process = new QProcess(this ...

  5. Android:创建文件或文件夹以及获取sd卡根目录

    目录结构: 功能,可以根据录入的目录或者文件夹生成相应的文件或者文件夹 首先需要添加一个权限: <uses-permission android:name="android.permi ...

  6. JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤

    JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常 ...

  7. Python获取指定文件夹下的文件名

    本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. 一.os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件. os.walk(top, t ...

  8. Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录

    Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录 这里先简单的贴下常用的方法: File.separator //当前系统文件分隔符 File.pathSeparator // ...

  9. [C#]Windows系统特殊文件夹路径获取

    原文:[C#]Windows系统特殊文件夹路径获取 由于软件开发的需要,近期对Windows特殊文件夹(如桌面,我的文档等)路径的查找方法进行了研究,结果如下. 获取特殊文件夹的方法不止一种,下面列出 ...

随机推荐

  1. js基本包装类型

    基本包装类型   3种特殊的引用类型 为了便于操作基本类型值,es还提供了3种特殊的引用类型: Boolean,Number,String. 每当读取一个基本类型值的时候,后台就会创建一个对应的基本包 ...

  2. leetcode.字符串.14最长公共前缀-Java

    1. 具体题目 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","fl ...

  3. CentOS6.5下RPM包安装MySQL5.6.35

    基本环境:VMware10.0+CentOS6.5+MySQL5.6.35 .查看操作系统相关 shell> cat /etc/issue shell> uname -a .创建需要下载r ...

  4. HXY烧情侣

    题目描述 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里有n座电影院,n对情侣分别在每座电影院里,然后电影院里都有汽油,但是要 ...

  5. hdu6395 /// 分块矩阵快速幂

    题目大意: F(1)=A, F(2)=B,  F(i)=C*F(i-2)+D*F(i-1)+p/i(向下取整) 给定A B C D p n 求F(n) 构造 矩阵A *   矩阵B        =  ...

  6. Ubuntu安装mongo可视化工具

    一.robo 3T 是mongodb的一个非常好用的可视化管理工具,曾经名为robomongo,现在被收购后改名为robo 3T.且现在robo 3T 1.1版本能支持mongodb3.4.现在在Ub ...

  7. (Struts2学习系列四)Struts2指定配置文件

    我们的每个action都在struts.xml里配置的话,就会出现很多的xml语句,单单一个struts.xml就会变得很大,所以我们会在struts.xml里使用include引入其他的.xml文件 ...

  8. redis String 相关命令

  9. 读书笔记一、numpy基础--创建数组

    创建ndarray   (1)使用array函数 接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的numpy数组. import numpy as np #将一个由数值组成列表作为 ...

  10. html标签注意事项

    1,关于媒体的video标签 在同一个页面上如果有多个video标签,并且初始化都赋值,则video不会播放, 解决办法,用计时器每隔50ms给后面的video标签设置src,设置完为止 2,关于ch ...