Excel VBA宏编程入门(五)——用户交互[通俗易懂]

Excel VBA宏编程入门(五)——用户交互[通俗易懂]目录任务介绍选择文件夹选择文件保存路径交互选择一列交互选择一行任务介绍VBA编程中,为了程序的灵活性,有时候需要用到用户交互操作,例如让用户选择一个文件夹,用户选择一个单元格等等。本文将介绍一些常用的用户交互操作的实现选择文件夹St=Application.FileDialog(msoFileDialogFolderPicker).Show’如果选择了文件夹就返回-1,不选择文件夹就返回0IfSt<>0ThenfileDir=Application.File

大家好,又见面了,我是你们的朋友全栈君。

任务介绍

VBA编程中,为了程序的灵活性,有时候需要用到用户交互操作,例如让用户选择一个文件夹,用户选择一个单元格等等。本文将介绍一些常用的用户交互操作的实现

选择文件夹

St = Application.FileDialog(msoFileDialogFolderPicker).Show '如果选择了文件夹就返回-1,不选择文件夹就返回0
If St <> 0 Then
    fileDir = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)    '取选择的文件夹路径
    MsgBox "您选择的文件夹是:" & fileDir     
Else
    Exit Sub    '没有选择合并文件所在路径,退出程序
End If

选择文件保存路径

Dim fileSaveName
'保存文件所在路径
fileSaveName = Application.GetSaveAsFilename(InitialFileName:="合并.xlsx", fileFilter:="Text Files (*.xlsx), *.xlsx")
If fileSaveName <> False Then
    MsgBox "Save as " & fileSaveName
Else
    Exit Sub    '没有选择保存路径,退出程序
End If

'创建空白excel文件
Set cwb = Workbooks.Add
cwb.SaveAs fileName:=fileSaveName, _
           FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

交互选择一列

 '下面通过InputBox这个方法确定分组项所在的列
On Error GoTo 100 '如果有错误跳转到100处
Set Rg = Application.InputBox("请选择分组项所在的列(可以单击其中一个单元格)", "选择", Type:=8) '用了这句不可以关闭屏幕刷新
ColNum = Rg.Column '把要拆分的列赋值变量 ColNum
Sheets(Rg.Parent.Name).Activate '将选择的工作表设置为活动工作表

100:
    MsgBox "您选择了取消或者是关闭,即将退出程序", 64, "温馨提示"

交互选择一行

'下面通过InputBox这个方法确定数据(表头、列标题除外)开始所在的行
On Error GoTo 100 '如果有错误跳转到100处
Set Rg = Application.InputBox("请选择标题所在的行(可以单击其中一个单元格)", "选择", Type:=8) '用了这句不可以关闭屏幕刷新
RowNum = Rg.Row '把数据开始的行赋值变量 RowNum

100:
    MsgBox "您选择了取消或者是关闭,即将退出程序", 64, "温馨提示"
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136842.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • getinstance用法作用(rept函数怎么用)

    阅读数:275先举例说明:下面是一个例子,为什么要把这个类实例化?有什么好处?//实例化publicstaticDBConnectinstance;publicstaticDBConnectgetInstance(){if(instance==null){instance=newDBconnect();}returninstance;…

    2022年4月14日
    37
  • kubernetes 1.14安装部署ingress

    kubernetes 1.14安装部署ingress

    2021年7月7日
    80
  • 数据结构——栈的详解[通俗易懂]

    栈和队列是两种重要的线性结构,从数据结构的角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表的子集。他们是操作受限的线性表,因此,可称为限定性的数据结构。但从数据类型角度看,他们是和线性表大不相同的两类重要的的抽象数据类型。C语言和C++中的栈C语言中的栈栈的定义C语言中栈的基本操作栈的初始化判断是否为空栈判断是否为满栈入栈出栈C语言实现栈的具体代码C++中的栈C++中栈的基…

    2022年4月6日
    59
  • 用PS修复老照片_photoshop修复老照片

    用PS修复老照片_photoshop修复老照片原图素材虽然很旧,不过人物部分并没有怎么损坏,只是有一些色块和杂色。修复的工程相对来说也少很多。只需要给人物磨好皮,然后把暗调和高光部分调出来即可。原图原图素材虽然很旧,不过人物部分并没有怎么损坏,

    2022年8月3日
    3
  • Windows性能监视器_windows性能分析工具

    Windows性能监视器_windows性能分析工具Windows性能监视器是一个Microsoft管理控制台(MMC)管理单元,提供用于分析系统性能的工具。仅从一个单独的控制台,即可实时监视应用程序和硬件性能,自定义要在日志中收集的数据,定义警报和自动操作的阈值,生成报告以及以各种方式查看过去的性能数据。启动Windows性能监视器:开始–>运行—>输入perfmon–>回车添加-保存计数器设置:在Windows2003中,添

    2025年6月1日
    0
  • mac navicat 15激活码_最新在线免费激活

    (mac navicat 15激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html2KLKA7BQFO-eyJsa…

    2022年4月1日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号