如果需要使用“打开”、“打印”等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. CUDA编程入门笔记

    1.线程块(block)是独立执行的,在执行的过程中线程块之间互不干扰,因此它们的执行顺序是随机的 2.同一线程块中的线程可以通过访问共享内存(shared memory)或者通过同步函数__sync ...

  2. autocad 2015 破解方法

    下载 http://trial.autodesk.com/SWDLDNET4/2015/ACD/DLM/AutoCAD_2015_Simplified_Chinese_Win_64bit_dlm.sf ...

  3. java8如何对List<Bean>进行去重和覆盖

    背景:有一批数据源从kafka给过来,接收到后需要处理,然后入库,我们用一个线程消费下来,一次消费30000条, 按照对象的概念,可以用List<Person>来表示,因为某种原因,需要根 ...

  4. C# WinFrom 关于MDI

    dev是一个牛B 到没边的控件 我们正常用winform做个原始mdi窗体 一点都不好看 但 用的dev只需要一个控件 就可让显示舒服多了 建一个项目 上边放一个 xtraTabbedMdiManag ...

  5. python xlwt设置单元格的自定义背景颜色

    我使用python 2.7和xlwt模块进行excel导出 我想设置我知道可以使用的单元格的背景颜色 style1 = xlwt.easyxf('pattern: pattern solid, for ...

  6. 第五篇 scrapy安装及目录结构,启动spider项目

    实际上安装scrapy框架时,需要安装很多依赖包,因此建议用pip安装,这里我就直接使用pycharm的安装功能直接搜索scrapy安装好了. 然后进入虚拟环境创建一个scrapy工程: (third ...

  7. SingalR 构建 推送服务器初探

    项目需要用到推送,于是重新研究了下推送框架,最好能够独立成一个服务,与业务无关的服务,可以给所有的项目通用.找了好久最终决定用SinglR 框架. Signal 是微软支持的一个运行在 Dot NET ...

  8. Oracle数据库与MySQL的不同点

    Oracle笔记 一.   Oracle的启动和登录:  1.启动:通过启动Oracle的服务启动. OracleServiceORCL:核心服务,必须启动. OracleOraDb11g_home1 ...

  9. 基于用户的协同过滤(UserCF)

  10. K-mean matlab 实现代码

    一.K均值聚类算法 算法步骤如下: 1.初始化 已知数据集合X,及事先指定聚类的总类数N,在X中随机选取N个对象作为初始的聚类中心. 2.设定迭代终止条件 通常设置最大循环次数或者聚类中心的变化误差. ...