Excel VBA用户交互/InputBox输入框的2种用法

在Excel VBA中我们经常需要和用户进行交互,此时我们会用到Inputbox这个函数。

其实,Inputbox作为同一函数名,确有2种不同的用法,一个是作为VBA下面的函数;再一个是作为Excel应用级的函数来使用。

下面我们分别看下,2种不同方法的区别。

一、VBA函数定义:

InputBox(Prompt,[Title, (Defaultl,[Pos,[YPos,(HelFilel, [Context)) As String

参数说明:

prompt:必要参数,即InputBox对话框中的显示文本。

title:可选参数,即InputBox对话框的名称,默认情况为主程序名。

default:可选参数,输入框默认的内容,如果不设置此参数,默认情况下输入框为空。

xpos与ypos:可选参数,用于设置InputBox对话框在主程序窗口的位置,默认情况下在窗口的中心。

helpfile与context:可选参数,即帮助文件和与帮助文件相关的上下文编号。

代码实例:

Sub test()

InputBox "请输入信息!","Test","在此处输入",1600,1600, "D:Applications�-Zip�-zip.chm", 0

End Sub

二、应用程序级函数Application.InputBox定义

Application.InputBox(Prompt As String, [Titlel, (Default, (Leftl, [Topl, (HelpFilel, (HelpContextID), [Typel)

参数说明:

type:可选参数,用于明确返回数据的类型。

如果设置为1,则输入框中必须输入数字类型。

返回数据的类型,主要有0,1,2,4,8,16,64,分别代表公式、数字、文本、逻辑值(True或False)、单元格对象(Range)、错误值(如#N/A)、数组值。

在这里,值得注意的是,如果返回数据类型为8,即为单元格对象Range类型。那么我们可以实现,在Excel里面框选单元格或区域来输入单元格地址。这样,对于我们选择单元格区域是非常方便的。

如果返回数据类型为Range类型,那么我们需要用到Set来接收返回值,如下:

Set rng = Application.InputBox("请输入区域地址",,,,,,,8)

这样,我们就可以使用For Each循环来遍历Range对象,方法如下:

For Each x in rng

Next

结合上面返回值,这里给出一个代码实例作为参考。

Sub sel()

    Set Rng = Application.InputBox("请输入区域地址", , , , , , , 8)


    For Each x In Rng

        If x = [f10] Then

            MsgBox (x.Row)

        End If

    Next

End Sub

本文转载自:https://www.yunzhi88.com/study/excel_vba/2023/0109/2748.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本例为设置密码窗口 (1) If Application.InputBox(“请输入密码:”) = 1234 Th...
    浮浮尘尘阅读 13,766评论 1 20
  • 在Excel VBA中,与MsgBox相似的函数,且比较常用的是InputBox,这在之前的一篇文章中也简单介绍过...
    Excel客旅阅读 437评论 0 2
  • 可以通过在属性窗口设置名称来给对象重新命名,名字可以由字母、汉字(2字符)、数字以及下划线组成,但必须以字母或汉字...
    重头再来0706阅读 2,207评论 0 1
  • 在面对大量数据时,我们可以使用Excel的筛选功能,滤出我们需要的信息。在本文中,我们先从Excel中的“筛选”命...
    完美Excel阅读 65,562评论 0 16
  • 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得...
    浮浮尘尘阅读 21,856评论 6 49