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)
上一篇 2022年6月2日 下午11:16
下一篇 2022年6月2日 下午11:36


相关推荐

  • BufferedWriter详解[通俗易懂]

    BufferedWriter详解[通俗易懂]字符缓冲流缓冲流:BufferedWriter高效读写支持输入换行符可以一次写一行,一次读一行。案例/**BufferedWriter*使用字符缓冲流写入文件**/publicclassTestBufferedWriter{publicstaticvoidmain(String[]args)throwsException{//1.创建一个缓冲流FileWriterfw=newFileWriter(

    2022年6月10日
    33
  • UiAutomator喷射事件的源代码分析

    UiAutomator喷射事件的源代码分析

    2022年1月4日
    62
  • css文本左右对齐_css垂直居中对齐

    css文本左右对齐_css垂直居中对齐css两端对齐怎么设置,css中文本的对齐有哪些内容导读:除了css两端对齐,本文还介绍了主要的css中文本的对齐有哪些。可以看到,常见的文本对齐方式是靠左、居中以及靠右,相对来说css两端对齐用得还是比较少的,只在某些特殊情况下使用。总之这些css代码很简单,大家应该能够很快学会。在设计页面的时候会涉及到文本对齐的问题,默认情况下是靠左对齐的,但有些时候也乤靠右对齐。本文给大家介绍下css两端对…

    2025年8月4日
    4
  • python中安装qt5

    python中安装qt5有条件就挂 vpn 命令控制行 pipinstallpy 安装成功后配置 qt5 打开 PyCharm 选择 Settings gt Tools gt ExternalTool 创建三个额外工具 QtDesigner pyrcc PyUIC 三个额外工具的配置 1 QtDesigner2 Pyrcc 中间 arguments 填 FileName o FileNameWith rc pyW

    2026年3月27日
    2
  • js遍历Map结构的数据

    js遍历Map结构的数据数据如下所示 varstr 长江 id 1 name 设备 1 state 0 江北 id 3 name 设备 3 state 0 id 5 name 设备 3 state 0 id 6 name 设备 3 state 0

    2026年3月26日
    1
  • springcloud版本号

    springcloud版本号因为SpringCloud不同其他独立项目,它拥有很多子项目的大项目。所以它是的版本是版本名+版本号,下面这些都是它的一些版本名:这些Angle,Brixton,Camden等都是伦敦地铁站的名字,他们按照字母顺序发行,就是版本的演进.当一个版本的SpringCloud项目的发布内容积累到临界点或者一个严重bug解决可用后,就会发布一个“servicereleases”版本,简称SR…

    2022年5月18日
    57

发表回复

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

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