ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 466|回复: 4

[求助] VBA中如何在指定路径下打开文件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-1-4 00:03 | 显示全部楼层 |阅读模式
记得以前看到过一个excelVBA,里面有代码,专指指定的路径下(如D盘或者D盘下的某个文件夹下)才能打开该文档,复制到别的路径后,该文档打开后就不存在了(相当于自杀了),现在想用却找不到了,不知道谁能提供个!

TA的精华主题

TA的得分主题

发表于 2024-1-4 08:19 | 显示全部楼层
难道是代码中已经添加了指定路径,如果选择的文件路径跟指定路径有出入,那么就删除该文件?

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-1-4 22:19 | 显示全部楼层
大概记得是这样的,vba里有代码  后面有路径,必须在规定的路径下打开文件,拷贝到别的路径下,打开文档后,文档就触发点击启动宏后文档就不存在了,新路径下文档也就不存在了 不指导具体代码如何写!

TA的精华主题

TA的得分主题

发表于 2024-1-6 08:38 | 显示全部楼层
mtxj 发表于 2024-1-4 22:19
大概记得是这样的,vba里有代码  后面有路径,必须在规定的路径下打开文件,拷贝到别的路径下,打开文档后 ...

您的想法挺有趣的,忍不住写一个试一下,您看是否符合您的要求。

  1. '工作簿打开时执行
  2. Private Sub Workbook_Open()
  3.     If LCase(ThisWorkbook.Path) <> "c:\abc" Then '为避免大小写不符的情况,这里规定,路径字符串中的英文为小写
  4.         MsgBox "工作簿不在指定的路径中,即将自毁!", vbExclamation
  5.         With ThisWorkbook
  6.             .Save '保存本工作簿
  7.             .ChangeFileAccess xlReadOnly '将本工作簿设为只读
  8.             Kill .FullName '删除本工作簿
  9.             .Close '关闭本工作簿
  10.         End With
  11.     End If
  12. End Sub
复制代码


附件说明:附件工作簿在C:\ABC\目录下打开,则一切正常;若将其放到其它目录中打开,则会自毁。

非指定路径自毁.rar

9.77 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2024-1-13 19:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
一、使用Shell函数打开文件夹  vb打开指定路径文件夹  Shell函数是VB中用于执行外部程序或操作系统命令的函数。我们可以使用Shell函数来打开指定路径的文件夹。具体代码如下:  Shell "explorer.exe " & "D:\folder"  其中,explorer.exe表示打开文件夹的应用程序,D:\folder表示要打开的文件夹路径。通过这种方式,我们可以很方便地打开指定路径下的文件夹。  二、使用WScript.Shell对象打开文件夹  WScript.Shell对象是VB中用于操作Windows脚本的对象。我们可以使用WScript.Shell对象的Run方法来打开指定路径的文件夹。具体代码如下:  Dim objShell As Object  Set objShell = CreateObject("WScript.Shell")  objShell.Run "explorer.exe D:\folder", 1, True  Set objShell = Nothing  其中,CreateObject("WScript.Shell")表示创建一个WScript.Shell对象,objShell.Run方法表示执行命令,1表示窗口显示方式为普通窗口,True表示等待命令执行完毕后再继续执行后续代码。通过这种方式,我们可以更加灵活地控制文件夹的打开方式和显示方式。  三、使用FileSystemObject对象打开文件夹  FileSystemObject对象是VB中用于操作文件系统的对象。我们可以使用FileSystemObject对象打开指定路径的文件夹。具体代码如下:  Dim objFSO As Object  Set objFSO = CreateObject("Scripting.FileSystemObject")  objFSO.GetFolder("D:\folder").ParentFolder  Set objFSO = Nothing  其中,CreateObject("Scripting.FileSystemObject")表示创建一个FileSystemObject对象,objFSO.GetFolder方法表示获取指定路径的文件夹,.ParentFolder表示打开文件夹所在的父文件夹。通过这种方式,我们可以灵活地获取文件夹对象,并进行更多的文件操作。  四、打开系统默认文件夹  除了打开指定路径的文件夹,我们还可以打开系统默认的文件夹,如“我的文档”、“桌面”等。具体代码如下:  Shell "explorer.exe " & CreateObject("WScript.Shell").SpecialFolders("MyDocuments")  其中,CreateObject("WScript.Shell").SpecialFolders("MyDocuments")表示获取系统默认的“我的文档”文件夹路径。我们可以根据需要修改SpecialFolders参数,打开不同的系统默认文件夹。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 09:23 , Processed in 0.032789 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表