【知识点1】application.inputbox方法
application.inputbox(prompt,title,default,left,top,helpfile,helpcontextid,type)
application.inputbox(对话框显示内容,对话框标题,对话框默认值,X坐标,Y坐标,帮助文件,帮助文件ID,对话框内容类型)
本例用到其中的
Typt=1,是数字,Typt=2是文本,若Typt=3,则可以数字或文本
【知识点2】拆分函数split
返回包含指定数目的子字符串的从零开始的一维数组。
语法
split(expression ,[分隔符、 [限制、 [比较]]])
参数
【知识点3】Replace函数
英文单词REPLACE的中文意思是“替换”,EXCEL中的REPLACE函数的作用是根据指定的字符数,将部分文本字符串替换为不同的文本字符串。
描述
根据指定的字符数,REPLACE 将部分文本字符串替换为不同的文本字符串。
语法
REPLACE(old_text, start_num, num_chars,new_text)
REPLACE函数的语法有以下参数:
======例子==========
【解决问题】,
近来在设计一个专用的拆分工具时有
输入所要的列的号。我准备取得那几列的的数据
Inputbot接受输入
Replace替换用户输入时的中文的”,”与英文的”,”
Split把输入的拆分成数组,也就可以得到数字了
【代码】
Sub inputbox_slipt_replace()
Dimarr, in_get
On Error Resume Next
in_get = Application.InputBox(prompt:="请输入要取得的列数"& vbLf & "1.如果要全部就用“0”" & vbLf & "2.如果要其中几列,请用“,”分割输入",Title:="请输入列号", Default:="0", Type:=3)
On Error GoTo 0
If in_get = "" Then MsgBox "你没有填写或按了“取消”":Exit Sub
'为了防止用的人员在输入的时候是中文的“,”用Replace处理一下
arr = Split(Replace(in_get, ",",","), ",")
For i = 0 To UBound(arr)
out_text = out_text & "第" & i &"数是:" & arr(i) & Chr(13)
Next i
MsgBox out_text
End Sub