VBA选择文件

Sub SelectFile()
Dim FileName As Variant
'打开文件对话框返回的文件名,是一个全路径文件名,其值也可能是False,因此类型为Variant
Dim sFileName As String                         '从FileName中提取的文件名
Dim sPathName As String                         '从FileName中提取的路径名
Dim aFile As Variant                            '数组,提取文件名sFileName时使用
Dim ws As Worksheet                             '存储文件路径名和文件名的工作表
Set ws = Worksheets("Sheet1")                   '设置工作表
FileName = Application.GetOpenFilename("Excel 文件 (*.xls),*.xls")
'调用Windows打开文件对话框
If FileName <> False Then                       '如果未按“取消”键
aFile = Split(FileName, "\")                '在全路径中,以“\”为分隔符,分成数据
sPathName = aFile(0)                        '取盘符
For i = 1 To UBound(aFile) - 1              '循环合成路径名
sPathName = sPathName & "\" & aFile(i)
Next
sFileName = aFile(UBound(aFile))            '数组的最后一个元素为文件名
ws.Cells(1, 2).Value = sPathName            '保存路径名
ws.Cells(2, 2).Value = sFileName            '保存文件名
End If
End Sub

选择打开文件后并没有真实的把它打开,然后高容错性地打开文件

Function OpenExcelFile(sPath As String, ByVal sFileName As String, bDisplay As Boolean, sPwd As String) As Integer
'打开Excel文件
'Ver 1.05
'完成时间:2007.12.01
'设计:美猴王软件工作室 www.okexcel.com.cn
'参数说明:
'sPath:文件绝对路径;sFileName:Excel文件名;bDisplay:True显示错误信息;sPwd:文件打开密码
'返回值:-1:同名文件已经打开;-2:文件不存在或密码错误;0:成功打开;1:文件已经被打开
Dim bOpen As Boolean
Dim sFullName As String
On Error Resume Next
If InStr(LCase(sFileName), ".xls") = 0 Then sFileName = sFileName & ".xls"
sFullName = Workbooks(sFileName).FullName
'检查是否已经打开同名的Excel文件
'如果有sFullName不为空
On Error GoTo 0
bOpen = False
If sFullName <> "" Then
If LCase(sFullName) = LCase(sPath & "\" & sFileName) Then
bOpen = True
'判断已经打开的同名文件是否本次需要打开的文件
OpenExcelFile = 1
'文件已经被打开
Else
If bDisplay Then
MsgBox "请首先关闭“" & sFileName & "”文件!" & Chr(13) & "不能同时打开同名文件,这是Excel的规定!", vbOKOnly + vbExclamation, "文件的打开错误"
End If
bOpen = True
OpenExcelFile = -1
'不能同时打开同名文件,这是Excel的规定
End If
End If
If Not bOpen Then
On Error GoTo errOpen
Workbooks.Open Filename:=sPath & "\" & sFileName, Password:=sPwd
On Error GoTo 0
OpenExcelFile = 0
'成功打开文件
End If
Exit Function
errOpen:
If bDisplay Then MsgBox Err.Description, vbOKOnly + vbExclamation, "文件的打开错误"
OpenExcelFile = -2
'文件不存在或密码错误
On Error GoTo 0
End Function

Excel VBA选择文件、高容错性地打开文件相关推荐

  1. 【常用自定义函数001】VBA高容错性地打开文件

    代码: Function OpenExcelFile(sPath As String, ByVal sFileName As String, bDisplay As Boolean, sPwd As ...

  2. linux 调用默认程序打开文件,Excel VBA如何使用默认应用程序打开文件

    我无法评论现有答案(分数不足),因此我在回答以添加信息. 从Access 2010开始,我遇到了以下语法的无提示故障: Dim URL As String URL = "http://foo ...

  3. 用Excel VBA选择文件、打开文件

    介绍如何用VBA选择文件和用VBA打开文件. 点击打开文件会弹出一个windows文件打开对话框,在EXCEL中VBA怎么实现这个功能? Sub SelectFile()     Dim FileNa ...

  4. Winform中实现文件另存为后并打开文件

    场景 在Winform程序中点击按钮实现Excel导出,会打开对话框,文件另存为之后自动打开文件. Process.Start Method 重载 Start()  启动(或重用)此 Process ...

  5. shell 创建文件_vba代替鼠标打开文件夹

    在 VBA造文件夹的思考 一文中介绍了如何用vba代码新建文件夹. 在用VBA操作文件和文件夹的过程中,除了新建文件夹,我们还经常需要与文件夹有个人机交互的过程,比如选择文件所在的文件夹,然后再执行一 ...

  6. VS2015无法打开包括文件corecrt.h 无法打开文件ucrtd.lib

    VS2015无法打开包括文件"corecrt.h" 无法打开文件"ucrtd.lib" 在网上是VS2015的一个BUG,如果是选择"从父级或项目默认 ...

  7. C# 打开文件夹FolderBrowserDialog与打开文件OpenFileDialog浅析

    最近在开发时遇到了不同文件的打开方式,然后就总结了一下,希望能帮到刷到的你 在C# 中对话框的有很多种: 1:文件对话框(FileDialog) 它又常用到两个:打开文件对话框(OpenFileDia ...

  8. Linux下多个进程可以同时打开同一个文件吗?文件描述符与打开文件的关系?

    一:结论 1.两个进程中分别产生生成两个独立的fd 2.两个进程可以任意对文件进行读写操作,操作系统并不保证写的原子性 3.进程可以通过系统调用对文件加锁,从而实现对文件内容的保护 4.任何一个进程删 ...

  9. Excel/WPS表格怎么设置输入密码才能打开文件

    方法/步骤 启动软件,新建 首先启动WPS软件,点击新建,然后选择表格可以新建一个表格文件,打开一张表格 文件另存为 点击文件菜单栏选择另存为,保存在电脑桌面中,重命名文件,点击加密 打开权限 在打开 ...

最新文章

  1. sqlyog连接服务出现的2003和1130错误问题
  2. 华为云FusionInsight+永洪BI共建政企用数之道,普惠千行百业
  3. 由点及面,专有云ABC Stack如何护航云平台安全?
  4. linux 文件 加密传输,服务端和客户端之文件加密传输
  5. linq 清除一条数据中的某个字段值_B端通用批量数据导入方案设计
  6. nacos初探--作为配置中心
  7. 总结一下这一年来的心得体会
  8. 【Spring】Spring DataSourceTransactionManager
  9. 软件测试-测试用例的经典例子
  10. 数据可视化API之弧线图实现
  11. 【机器学习基础】IV和WOE值
  12. vos3000配置与通讯测试(一)
  13. 产品隐私政策与使用条款
  14. 结算从业人员常用词典1.0
  15. html背景飘汽水气泡,HTML5网页背景气泡上升
  16. NYOJ 304 节能【记忆化搜索】
  17. modal组件 vue_Vue 2.0学习笔记:使用Vue创建Modal组件
  18. php占用服务器内存,php-fpm占用cpu和内存过高100% 解决办法
  19. 华为p10手机安装linux,matebookD安装linux系统总结
  20. Redis跳跃表(SkipList)

热门文章

  1. 嘉立创EDA-PCB产品设计操作概要
  2. 电气,电子的详细区分
  3. 长江水质的评价和预测——综合指标评价
  4. e^2 约等于 2.71828
  5. linux设置TCP接收缓存,TCP缓存设置及自调节
  6. 让机器读懂人类:探索问答系统和机器阅读理解
  7. 用代码制作五角星2021-10-22
  8. 哪些中年程序员适合去创业?
  9. PendSV中断服务函数
  10. Atitit 知识与学科的分类 杜威十进分类法 图书分类法已经采用二十二个大类 目录 1.1. 类知识的积累是一个从少到多的过程 1 1.2. 杜威十进分类法(Dewey Decimal Class