当前位置: 首页 > news >正文

具备“记忆”功能的VBA目录选择器

大家使用任意一款浏览器(例如:Chrome、Edge)下载文件时,如果【另存为】对话框选择C:\Download,那么下次再次使用【另存为】功能,对话框默认显示C:\Download,而不是根目录。

在VBA开发中调用目录选择器并不复杂,但是这个目录选择器有些不方便,并不具备Windows目录选择器的“记忆”功能。其实通过一些变通方法也可以实现相同的效果。

示例代码。

Sub SelectFolder()Dim objFolder As FileDialogDim strSelectedPath As StringSet objFolder = Application.FileDialog(msoFileDialogFolderPicker)objFolder.InitialFileName = GetSetting("MyApp", "LastFolder", "Path", "C:\")objFolder.ShowIf objFolder.SelectedItems.Count = 1 ThenstrSelectedPath = objFolder.SelectedItems(1)SaveSetting "MyApp", "LastFolder", "Path", strSelectedPathMsgBox "已选择目录: " & strSelectedPath, vbInformationElseMsgBox "未选中任何文件夹!", vbCriticalEnd IfSet objFolder = Nothing
End Sub

【代码解析】
第4行代码创建FileDialog对象。
第5行代码设置目录选择器默认加载的目录,GetSetting函数读取注册表中的键值,如果找不到的话,设置初始目录为C:\
第6行代码显示目录选择器。
第7行代码判断用户选中的单个目录。
第8行代码读取用户选中的第一个目录。
第9行代码将用户选择的目录保存在注册表中。
第10行代码显示提示消息框。
第14行代码释放对象变量占用的系统资源。

用户最后一次选择的目录被保存在注册表中,再次调用目录选择器时,将默认加载上次选择的目录,也就实现“记忆”功能。


貌似不可实现的功能,其实也可以变通实现。

http://www.lryc.cn/news/64569.html

相关文章:

  • electron入门 | 手把手带electron项目初始化
  • ​力扣解法汇总2423. 删除字符使频率相同
  • 【超算/先进计算学习】日报8
  • 《LearnUE——基础指南:上篇—2》——GamePlay架构之Level和World
  • IDEA部署tomcat项目
  • IAM角色
  • 【VAR | 时间序列】以美国 GDP 和通货膨胀数据为例的VAR模型简单实战(含Python源代码)
  • 常用的设计模式之二(行为型模式)
  • MYSQL基本操作(增删改查)
  • 双周赛103(模拟、网格图BFS、树状数组)
  • 【数据结构】二叉树(详细)
  • 蓝牙耳机哪款性价比高一些?2023年性价比最高的蓝牙耳机推荐
  • 等保2.0存在的问题
  • 国民技术N32G430开发笔记(9)- IAP升级 Bootloader的制作
  • 如何使用depcheck检查vue和react的依赖,以后不用把时间浪费在依赖问题上了
  • 使用Python和机器学习进行文本情感分类
  • QML路径视图(The PathView)
  • 5月4号软件资讯更新合集.....
  • 基于 Rainbond 的混合云管理解决方案
  • 加强网络风险生命周期
  • Java——二叉树的深度
  • 一般现在时(二)
  • leetcode657. 机器人能否返回原点
  • DAY 48 Nginx的 location与rewrite模块
  • Linux 常用操作技巧
  • BetaFlight统一硬件配置文件研读之timer命令
  • 码出高效:Java开发手册笔记(java对象四种引用关系及ThreadLocal)
  • 为什么要进行数据决策?数据决策对企业而言有何重要意义?
  • 2. Java 异常体系
  • 如何学好STM32,需要哪些步骤?