本帖最后由 hwc2ycy 于 2014-1-27 16:15 编辑
InputBox 方法
显示一个接收用户输入的对话框。
返回此对话框中输入的信息。
语法:
InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID,Type)
Prompt 必选,要在对话框中显示的消息。
可为字符串、数字、日期、或布尔值,
在显示之前,Microsoft Excel 自动将其值强制转换为 String。
Title 可选,输入框的标题。如果省略该参数,默认标题将为“Input”。
Default 可选 Variant 指定一个初始值,该值在对话框最初显示时出现在文本框中。
如果省略该参数,文本框将为空。该值可以是 Range 对象。
Left 可选 Variant 指定对话框相对于屏幕左上角的 X 坐标(以磅为单位)。
Top 可选 Variant 指定对话框相对于屏幕左上角的 Y 坐标(以磅为单位)。
HelpFile 可选 Variant 此输入框使用的帮助文件名。
如果存在 HelpFile 和 HelpContextID 参数,对话框中将出现一个帮助按钮。
HelpContextID 可选,HelpFile 中帮助主题的上下文 ID 号。
Type 可选,指定返回的数据类型。如果省略该参数,对话框将返回文本。
返回值:Variant
说明:
Type参数可以为下列值之一或其中几个值的和。
例如,对于一个可接受文本和数字的输入框,将 Type 设置为 1 + 2。
0 公式
1 数字
2 文本(字符串)
4 逻辑值(True 或 False)
8 单元格引用,作为一个 Range 对象
16 错误值,如 #N/A
64 数值数组
使用 InputBox 可以显示一个简单的对话框,以便可以输入要在宏中使用的信息。
此对话框有一个“确定”按钮和一个“取消”按钮。
如果选择了“确定”按钮,则 InputBox 将返回对话框中输入的值。
如果单击“取消”按钮,则 InputBox 返回 False。
如果 Type 为 0,InputBox 将以文本格式返回公式。
例如,“=2*PI()/360”。如果公式中有引用,将以 A1样式引用返回(使用 ConvertFormula 转换引用样式)。
如果 Type 为 8,InputBox 将返回一个 Range 对象。
必须用 Set 语句将结果指定给一个 Range 对象,如下例所示。
Set myRange = Application.InputBox(prompt := "Sample",type := 8)
如果不使用 Set 语句,此变量将被设置为这个区域的值,而不是 Range 这个对象本身。
如果使用 InputBox 方法要求用户输入公式,则必须使用 FormulaLocal 属性来将此公式指定给一个 Range 对象。
输入的公式使用用户语言。
InputBox 方法与 InputBox 函数的区别在于:
它可以对用户的输入进行选择性验证,也可用于 Microsoft Excel 对象、误差值、和公式的输入。
Inputbox方法可以选取单元格对象
注意:
Application.InputBox 调用的是 InputBox 方法,
不带对象识别符的 InputBox 调用的是 InputBox 函数。
示例:
Dim r
r = Application.InputBox(prompt:="请输入一个数值:",Title:="测试Inputbox方法", _
Default:=168, Type:=1)
'在输入数值的情况下,如果多选单元格,只会返回左上角单元格的值
'同时,多选区域是无效的
MsgBox r
r = Application.InputBox(prompt:="请输入公式:",_
Default:="=a1", Type:=0)
MsgBox r & vbCr & Application.ConvertFormula(r, xlR1C1,xlA1)
'这里返回的公式是R1C1格式的,可以使用Application.ConvertFormula 方法转换成A1样式
On Error Resume Next
'为了避免点击取消后,产生类型不匹配错误,这里产生错误时继续接着执行
Set r = Application.InputBox(prompt:="请选择单元格区域:",_
Default:=Range("a1").Address, Type:=8)
If r Is Nothing Then
MsgBox "对话框取消了"
Else
MsgBox r.Address
End If
Intersect 方法 返回一个 Range 对象,该对象表示两个或多个区域重叠的矩形区域。 语法: Intersect(Arg1, Arg2, Arg3, Arg4, Arg5,Arg6, Arg7, Arg8, Arg9, _
Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, _
Arg17,Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, _
Arg24, Arg25, Arg26, Arg27, Arg28,Arg29, Arg30) Arg1,arg2是必选参数,要求为Range对象。 另外,有个细节需要注意下: 所有的参数必须是位于同一个工作表内的单元格。 当参数为不同工作表的单元格时,会产生运行错误。
示例: Dim rg As Range Set rg =Application.Intersect(Range("a1"), Range("a2")) If rg Is Nothing Then Else MsgBox rg.Address End If Set rg =Application.Intersect(Range("a1:c9"), Range("b4:k10")) If rg Is Nothing Then Else MsgBox rg.Address End If Set rg =Application.Intersect(Range("a1:c9"), Range("b4:k10"),Range("c5"), Range("c2:d3")) If rg Is Nothing Then Else MsgBox rg.Address End If
Union 方法 返回两个或多个区域的合并区域。 语法: Union(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6,Arg7, Arg8, _
Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, _
Arg16, Arg17,Arg18, Arg19, Arg20, Arg21, Arg22, _
Arg23, Arg24, Arg25, Arg26, Arg27, Arg28,Arg29, Arg30) Arg1,Arg2必选,要求为Range对象。 返回值:Range 合并时的注意事项与InterSect方法相同,要求为同一个工作表上的单元格。 示例: Dim rg As Range Set rg =Application.Union(Range("a1"), Range("a1:b1"),Range("c1")) MsgBox rg.Address
|