ajax保存文件对话框_VBA学习笔记34-2:Excel对话框(FileDialog)

2023-10-27

学习资源:《Excel VBA从入门到进阶》第34集 by兰色幻想

这篇笔记写对话框的FileDialog对象。开始前先把上篇漏写的改变窗口默认路径补一下。

chdrive 盘符 可以改变默认驱动器
chdir 路径 可以改变默认路径

这两个默认路径的设置都是长期的,直到重新设置才会变更过来。代码位置如下例:

Sub t6()
Dim f

ChDrive "E"               '改变默认驱动器为E盘
'ChDir ThisWorkbook.Path  '改变默认路径为当前路径(就不另写例子了)
f = Application.GetOpenFilename("Excel2003文件,*.xls,Word文件,*.doc,文本文件,*.txt", 1, MultiSelect:=True)
MsgBox f(1)
 
End Sub

运行结果显示

一、FileDialog对象简介

上篇写的GetOpenFilename和GetSaveFilename都只能把选择的文件路径返回到程序,但不能真正打开文件,也不能选择文件夹。

所以我们需要学习另一个对象——FileDialog对象。它提供文件对话框,功能与 Microsoft Office 应用程序中标准的“打开”和“保存”对话框类似。利用这些对话框,解决方案的用户可以简便地指定解决方案中应该使用的文件和文件夹。

①“打开”对话框:让用户选择一个或多个可以在主机应用程序中使用 Execute 方法打开的文件。

②“另存为”对话框:让用户选择一个可以使用 Execute 方法保存当前文件的文件。

③“文件选取器”对话框:让用户选择一个或多个文件。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合。

④“文件夹选取器”对话框:让用户选择一个路径。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合。

二、FileDialog语法和属性

FileDialog语法:

Application.FileDialog(FileDialogType)

FileDialogType类型

FileDialog属性:

  1. AllowMultiSelect :允许用户从文件对话框中选择多个文件,填写 True。
  2. Filters.Add 规则名称, 过滤文件类型, 规则起始位置(初始为1) :添加过滤规则
  3. SelectedItems :选取的多个文件集合
  4. InitialFileName :设置初始路径和文件名称
  5. InitialView :可以设置初始文件的显示样式(文件查看类型)
  6. Title :对话框标题
  7. show :可以判断用户是否点击了取消按钮,如果点击取消会返回0,否则返回-1
  8. ilters.Clear :清除当前的过滤规则
  9. ButtonName :选择按键名称

InitialView的属性是文件查看类型,就是我们平时在文件夹里右击打开设置的“查看”,不用特意记,当打出“InitialView=”后会出现下拉框可以选择属性

属性还有很多,这里只列了一些常用的属性,需要用的时候可以再去深入了解。

※ 下面讲一下例子:

例1:选择并返回一组文件名和路径。

Sub f1()

Dim f
Dim dig As Object

Set dig = Application.FileDialog(msoFileDialogOpen)

With Application.FileDialog(msoFileDialogOpen)
    .AllowMultiSelect = True                  '允许选择多个文件
    .Filters.Add "Excel文件", "*.xls", 1       '过滤规则为把后缀为.xls的Excel文件筛选出来  
    .InitialFileName = ThisWorkbook.FullName   '初始路径和文件名称为当前文件名及其路径
    .InitialView = msoFileDialogViewDetails    '初始文件的显示样式:详细信息
    .Title = "对话框测试"                       '对话框标题:对话框测试
    .Show
    
    '把文件名和路径放在selecteditem属性里,通过序号或者循环一一读取
    For Each f In .SelectedItems 
        MsgBox f
    Next f

End With

Set dig = Nothing

End Sub

运行效果:

例2:选择并返回文件夹

Sub F2()

Dim dig As Object

Set dig = Application.FileDialog(msoFileDialogFolderPicker)

With dig
    .InitialFileName = "d:"   '设置初始路径为D盘
    .Show
    MsgBox .SelectedItems(1)
End With

Set dig = Nothing

End Sub

运行结果:

三、小结

个人认为,FileDialog对象的功能更加实用,但如果只是想获取文件夹路径的话,可以选择GetOpenFilename 和 GetSaveFilename ,看情况使用吧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ajax保存文件对话框_VBA学习笔记34-2:Excel对话框(FileDialog) 的相关文章

  • Python免费获取股票业绩预告【附源码】

    在众多的股票量化策略里 我比较钟爱一个策略 净利润断层 直观理解就是在股票的业绩预告 业绩快报 业绩报告等报告出来的时候 因为业绩超预期 股价会有一个跳空高开形成缺口 而且因为上攻力量比较强 这个缺口短期不会回补 而且股价会随着上攻力量越来
  • vue-router 路由超详细教程

    router 路由详细教程 一 前端路由的概念与原理 1 什么是路由 2 SPA与前端路由 3 什么是前端路由 4 前端路由的工作方式 5 实现简易的前端路由 二 vue router的基本用法 1 什么是 vue router 2 vue
  • 【Bus】编写一个Demo虚拟的总线-设备-驱动模型

    文章目录 1 前言 2 总线驱动模型三要素 2 1 总线 2 2 设备 2 3 驱动 3 Demo Code 3 1 virt bus core c 3 2 virt device c 3 3 virt driver c 问题一 virt
  • BOF——Bag-of-Featrures

    本文主要介绍 BOF Bag of Featrures 的原理及其应用 1 1 引言 文档分类领域有一种模型称为词袋 Bag of words 模型 它是自然语言处理与信息检索过程中的一种简化模型 在这种模型中 文本 段落或文档 被视为忽略
  • Docker之网络:容器通信的模式与技术

    Docker的网络基础 默认网络模式 特殊的几种网络模式 容器和宿主机的通信方式 容器与外部主机的通信方式 文章目录 Docker的网络基础 一 Docker默认的原生网络 bridge桥接 二 host模式 三 none模式 四 Dock
  • 代码审计总结

    目录 概述 一 代码审计 1 1什么是代码审计 1 2为什么要执行代码审核 1 3代码审计的好处 二 代码审计流程 2 1代码检查方法 2 2代码检查项目 2 3编码规范 2 4代码检查规范 2 5缺陷检查表 2 6代码审计复查 2 7代码
  • Linux工具 Ansible

    Linux工具 ansible Ansible是一个运维管理工具 可以减少一些重复的配置 比如有几百台主机需要进行相似的配置时或者对所有主机进行某些软件的版本升级时 如果是人工一台一台的配置是非常慢的 也容易出错 毕竟人精力有限 而这个An
  • PowerShell 美化(谁不想要一个好看的终端呢)

    PowerShell 美化 安装powershell Scoop 安装 Oh My Posh 安装 字体设置 应用主题 花里胡哨的折腾 bushi 多种主题任君挑选 安装powershell 地址 https github com Powe
  • neo4j官方示例数据库

    官方示例数据库 CREATE TheMatrix Movie title The Matrix released 1999 tagline Welcome to the Real World CREATE Keanu Person name
  • param.grad为 None或者TypeError: unsupported operand type(s) for *: ‘float‘ and ‘NoneType‘

    在学习李沐的动手学深度学习 从零开始实现softmax回归中 我跟着敲完代码 发现无法运行 报错入如下 TypeError Traceback most recent call last Cell In 72 line 3 1 num ep
  • 小程序蓝牙传输二维码

    有个需求 蓝牙要显示二维码 需要得到二维码的位图 点阵图 矩阵图 实现思路 1 获得canvas的二维码图片 要求为64px乘64px 2 获得二维码的图片 然后解析像素数组 获得像素的二进制状态码 3 将二进制状态码转化为byte数组 然
  • PCIE专题学习——1.0

    PCIE基础概念 一 1 PCIe的概念 PCIe是一种全双工 差分 端对端 串行告诉接口协议 PCI是并行处理的机制 差分可以提高传输的稳定性 全双工意味着发送端在发送的同时 也可以接收 问题在于串行会比并行处理快吗 当然不一定 这和系统
  • RuntimeError: The Session graph is empty. 和no Attribute““解决方法

    问题产生的原因 无法执行sess run 的原因是tensorflow版本不同导致的 tensorflow版本2 0无法兼容版本1 0 解决办法 添加行 tf compat v1 disable eager execution 无法执行se
  • JAVA 通过POI实现Excel从单元格选择下拉选项

    发生情景 最近使用到了模板导出功能 最开始使用的是hutool的POI工具 但是做下拉列表的时候 addSelect方法报错 问题 Excel在添加自定义下拉数据的时候 输入内容不能大于255个字符 这在做一些简单的下拉选项时没有问题 但是
  • 数论整理之算数基本定理de变形

    D Sigma Function 这道题一看到就和上一道题很像 以为也是算数基本定理的考查 做了一下 发现能过样例 tle tle的思路 经过多次验算 就是发现幂的规律吧 只要存在一个pi ei都为奇数的pi ei 就能使sum为偶数 素因
  • R语言中的quantile()函数

    在R语言中取百分位比用quantile 函数 下面举几个简单的示例 1 求某个百分位比 gt data lt c 1 2 3 4 5 6 7 8 9 10 gt quantile data 0 5 50 5 5 gt quantile da
  • 【ES】原生es的复杂查询

    原生es的复杂查询 相关依赖 复杂查询概述 外层查询 SearchSourceBuilder 类 外层查询概述 对查询结果进行分页 对查询结果进行排序 对查询结果字段进行过滤 对查询结果进行聚合 求年龄的最大值 根据年龄进行分组 内层查询
  • 关于两个页面用params传数据,刷新后数据消失的解决

    通常我们在两个页面传数据时 一般会采用params query 或者将数据用vuex localStorage sessionStorage存储起来 然后方便其他页面调用数据 但是params和vuex有一个不好的地方就是只要我们在接受数据
  • R6-1 给定两个均不超过9的正整数a和n,要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列和函数接口定义:fn(a,n)其中 a 和 n 都是用户传

    给定两个均不超过9的正整数a和n 要求编写函数fn a n 求a aa aaa aa aa n个a 之和 fn须返回的是数列和 函数接口定义 fn a n 其中 a 和 n 都是用户传入的参数 a 的值在 1 9 范围 n 是 1 9 区间

随机推荐

  • python学习笔记---函数【廖雪峰】

    函数 调用函数 函数名其实就是指向一个函数对象的引用 完全可以把函数名赋给一个变量 相当于给这个函数起了一个 别名 gt gt gt a abs 变量a指向abs函数 gt gt gt a 1 所以也可以通过a调用abs函数 1 定义函数
  • UE4内置浏览器支持h264 mp4 视频 编译cef3 3071源码

    转载 原文链接 UE4内置浏览器支持h264 mp4 视频 编译cef3 3071源码 ue4 cef 鸿蒙老道的博客 CSDN博客首先ue4内置的CEF3 浏览器是不支持h264视频的 所以需要我们重新编译CEF内核 然后覆盖旧的版本一
  • 空闲时间不要接私活,要提升自己

    这个话题很纠结 现在社会 有很多人都在利用个人时间兼职赚钱 程序员俗称 接私活 其他行业称作兼职 比如下了班出去跑滴滴 周末兼职抢单送外卖等等 都是普通人很常见的兼职方式 甚至很多技术同行 我听说也有周末去跑滴滴和送外卖的 我觉得很不可思议
  • JVM-对象内存分配与回收细节问题

    对象内存分配与回收细节问题 1 禁用System gc System gc 会显示直接触发Full GC 同时触发老年代和新生代进行回收 而一般情况是我们认为 垃圾回收时自动进行的 无需手动触发 频繁的垃圾回收对系统性能造成较大影响 可以使
  • [数据分析与可视化] 基于matplotlib-scalebar库绘制比例尺

    matplotlib scalebar是一个Python库 用于在matplotlib图形中添加比例尺 它允许用户指定比例尺的大小 位置 字体和颜色 以及比例尺的单位 该库支持不同的比例尺单位 例如米 英尺 英寸等 matplotlib s
  • 一个51单片机矩阵键盘的扫描,消抖和键号显示程序

    51单片机的按键判断是一项很重要的功能 在蓝桥杯的比赛中必不可少 下面介绍一个稳定性比较好的矩阵键盘程序 首先介绍一下该矩阵键盘的基本原理 1 扫描 四条列线 接单片机的P2 4 P2 7口 电平都为1 四条行线 接P2 0 P2 3口 先
  • 交叉熵、信息熵、KL散度、互信息与Information Bottleneck【信息瓶颈IB】之间的关系

    Information Bottleneck IB 预备知识 交叉熵损失函数 CrossEntropy Loss 在DL中 交叉熵损失函数用作分类问题 使用它作为Loss Function时 在模型的输出层总会接一个softmax函数 交叉
  • js制作css滚动条,css、js实现自定义滚动条的两种方式

    一般默认的滚动条会比较丑 我们可以利用css或者js来实现实现自定义滚动条的功能 下面就整理2种实现方式 1 css自定义滚动条 需要在WebKit平台上才支持 代码如下 webkit scrollbar width 8px webkit
  • Python编程练习:翻转数字

    coding utf 8 10 翻转数字 难度 中等 通过键盘输入一个数字 若 1 该数字位各个位上的数字和为奇数 则将该数各位数倒叙打印 如122 各个位上的数字之和为1 2 2 5 打印221 2 若该数字各个位数之和为偶数 则直接打印
  • python中[::-1]是什么意思

    c 1 2 3 4 5 6 c 1 6 5 4 3 2 1 反转列表顺序 扩展 a 0 1 2 3 4 5 6 7 8 9 b a i j 表示复制a i 到a j 1 以生成新的list对象 b a 1 3 那么 b的内容是 1 2 当i
  • CMake Error: The source “xxx“ does not match the source “yyy“ used to generate cache. Re-run cmake

    目录 场景复现 解决方案 找到我们的编译路径 重新使用CMake编译 场景复现 今天使用CMake再次编译fmt源码时 cmake抛出一个错误 告诉我找不到一个路径 但我这个电脑本就没有这个路径 仔细一看这个路径是我在另一个电脑编译的路径
  • HTTP/HTTPS协议详解

    目录 一 HTTP详解 1 1 概念 1 2 HTTP的协议格式 1 2 1 HTTP请求体格式 1 2 2 HTTP响应体格式 1 3 HTTP请求方法 1 4 认识请求报头 1 5 HTTP请求过程 1 6 认识状态码 二 HTTPS详
  • 【动态系统的建模与分析】一阶系统的单位阶跃响应+时间常数-笔记

    一个一阶系统 其数学表达 做系统识别 令qin c 去记录高度的变化 可得图像 这个系统的响应为 如果其4s达到稳定时间 则 该系统传递函数为 则
  • vue金额格式化保留两位小数

    Vue filter number function data return data toFixed 2 在需要的地方 integralval 100 number 元
  • Nginx常用模块

    Nginx常用模块 文章目录 Nginx常用模块 1 Nginx常用模块 1 1 Nginx目录索引 下载模块 1 1 1 配置autoindex语法 1 1 2 autoindex配置实例 1 1 3上传资源 1 1 4 autoinde
  • 【嵙大OJ】Problem 1217: 编写函数:浮点数取整 (Append Code)

    Problem A 编写函数 浮点数取整 Append Code Time Limit 1 Sec Memory Limit 2 MB Submit 7000 Solved 2864 Submit Status Web Board Desc
  • 操作系统重要概念——异步性

    在多道程序环境下 允许多个进程并发执行 进程在使用资源时可能需要等待或放弃 进程的执行并不是一气成的 而是以走走停停的形式推进 如下举例 进程以不可预知的速度向前推进 何时执行 何时暂停 何时完成都是未知的 这就造成了系统的异步性
  • UUID 生成(源代码编译)

    根据定义 UUID Universally Unique IDentifier 也称GUID 在时间和空间都是唯一的 为保证空间的唯一性 每个UUID使用了一个48位的值来记录 一般是计算机的网卡地址 为保证时间上的唯一性 每个UUID具有
  • ++ 符号

    关于 符号 i i 刚好最近看到一个关于i i 的测试题就查询资料测试了一下 int i 10 int j 30 i i Console WriteLine i Console WriteLine i i Console WriteLine
  • ajax保存文件对话框_VBA学习笔记34-2:Excel对话框(FileDialog)

    学习资源 Excel VBA从入门到进阶 第34集 by兰色幻想 这篇笔记写对话框的FileDialog对象 开始前先把上篇漏写的改变窗口默认路径补一下 chdrive 盘符 可以改变默认驱动器 chdir 路径 可以改变默认路径 这两个默