excel vbs提取选定单元格

想用代码,分三个弹窗提示选三个单元格,然后把这三个单元格放在某选定单元格,按行排放

  根据指定内容的位置的不同,可以选择使用MID或MIDB、RIGHT或RIGHTB、LEFT或LEFTB等文本提取指定的文字内容。

以下为该函数的详细介绍及实例:

MID 或MIDB 用途:MID 返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。MIDB返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。MIDB函数可以用于双字节字符。
语法:MID(text,start_num, num_chars)或MIDB(text, start_num,num_bytes)。
参数:Text 是包含要提取字符的文本串。Start_num 是文本中要提取的第一个字符的位置,文本中第一个字符的start_num 为1 ,以此类推;Num_chars指定希望MID 从文本中返回字符的个数;Num_bytes指定希望MIDB 从文本中按字节返回字符的个数。
实例:如果a1=电子计算机,则公式“=MID(A1,3,2)” 返回“计算”,=MIDB(A1,3,2)返回“子”。

RIGHT 或RIGHTB 用途:RIGHT 根据所指定的字符数返回文本串中最后一个或多个字符。RIGHTB根据所指定的字节数返回文本串中最后一个或多个字符。
语法:RIGHT(text,num_chars),RIGHTB(text,num_bytes) 。
参数:Text 是包含要提取字符的文本串;Num_chars 指定希望RIGHT 提取的字符数,它必须大于或等于0。如果num_chars 大于文本长度,则RIGHT 返回所有文本。如果忽略num_chars, 则假定其为1。Num_bytes 指定欲提取字符的字节数。
实例:如果A1=学习的革命,则公式“=RIGHT(A1,2)”返回“革命”,=RIGHTB(A1,2)返回“命”。

LEFT 或LEFTB用途:根据指定的字符数返回文本串中的第一个或前几个字符。此函数用于双字节字符。
语法:LEFT(text,num_chars)或LEFTB(text, num_bytes)。
参数:Text 是包含要提取字符的文本串;Num_chars指定函数要提取的字符数,它必须大于或等于0。Num_bytes按字节数指定由LEFTB 提取的字符数。
实例:如果A1=电脑爱好者,则LEFT(A1,2)返回“电脑”,LEFTB(A1,2)返回“电”。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-03-05
Sub GetRangeLocal()
    Dim rng1 As Range, rng2 As Range, rng3 As Range
    On Error Resume Next
    Set rng1 = Application.InputBox(prompt:="1st", Type:=8)
    Set rng2 = Application.InputBox(prompt:="2nd", Type:=8)
    Set rng3 = Application.InputBox(prompt:="3rd", Type:=8)
    With Selection
        .Value = rng1.Value
        .Offset(0, 1).Value = rng2.Value
        .Offset(0, 2).Value = rng3.Value
    End With
End Sub

选定单元格后运行代码,出现三个选择单元格对话框(未设防错,如选择多个单元格的情况),选定单元格及右侧一二单元格出现选中数值。

下面是完成版的代码,当选中区域为多个单元格时,提示并重新选择。

Sub GetRange()
    Dim rng1 As Range, rng2 As Range, rng3 As Range
'------------------------------------------------------------------------------
    Do
        Set rng1 = Application.InputBox(prompt:="1st Cell", Type:=8)
        If rng1 = "" Then Exit Sub
        If rng1.Columns.Count > 1 Or rng1.Rows.Count > 1 Then MsgBox "Select only one cell,please!"
    Loop While rng1.Columns.Count > 1 Or rng1.Rows.Count > 1
'------------------------------------------------------------------------------
    Do
        Set rng2 = Application.InputBox(prompt:="2nd Cell", Type:=8)
        If rng2 = "" Then Exit Sub
        If rng2.Columns.Count > 1 Or rng2.Rows.Count > 1 Then MsgBox "Select only one cell,please!"
    Loop While rng2.Columns.Count > 1 Or rng2.Rows.Count > 1
'------------------------------------------------------------------------------
    Do
        Set rng3 = Application.InputBox(prompt:="3rd Cell", Type:=8)
        If rng3 = "" Then Exit Sub
        If rng3.Columns.Count > 1 Or rng3.Rows.Count > 1 Then MsgBox "Select only one cell,please!"
    Loop While rng3.Columns.Count > 1 Or rng3.Rows.Count > 1
'------------------------------------------------------------------------------
    With Selection
        .Value = rng1.Value
        .Offset(0, 1).Value = rng2.Value
        .Offset(0, 2).Value = rng3.Value
    End With
'------------------------------------------------------------------------------
    Set rng1 = Nothing
    Set rng2 = Nothing
    Set rng3 = Nothing
End Sub

本回答被提问者采纳

excel vbs提取选定单元格
参数:Text 是包含要提取字符的文本串。Start_num 是文本中要提取的第一个字符的位置,文本中第一个字符的start_num 为1 ,以此类推;Num_chars指定希望MID 从文本中返回字符的个数;Num_bytes指定希望MIDB 从文本中按字节返回字符的个数。实例:如果a1=电子计算机,则公式“=MID(A1,3,2)” 返...

VBS如何获取EXCEL表里的数据?
Set osheet=obook.Sheets("sheet1")'显示第一个工作表A1单元格数据 msgbox osheet.cells(1,1)Set obook=Nothing Set osheet=Nothing oexcel.Quit

如何通过VBS编写脚本程序,读取EXCEL当前选择的单元格的地址,放入txt里...
Set xls = GetObject(, "Excel.application")Set ActiveCell = xls.ActiveCellMsgBox ActiveCell.Address注意要保证获取到的xls对象的当前工作簿就是你要获取的那个,当有多个excel进程时这一点尤其重要,vba的多年老毛病了,到2017了也没见改正,真无语 ...

如何用vbs批量修改多个Excel表里某个工作簿里的特定单元格内容?
并修改F31单元格数据为:“C30” ActiveWorkbook.Save '保存打开的工作簿 ActiveWorkbook.Close '关闭打开的工作簿 myFile = Dir '再用dir函数提取一个文件名 Loop Application.DisplayAlerts = True Application.ScreenUpdating = TrueEnd Sub 已经测试过,通过了的。望采纳,...

如何用VBS代码实现复制excel单元格
a.Visible = True '显示excel b.Sheets(1).Range("e1").Copy b.Sheets(1).Range("d1") '复制单元格的方法 程序中 d:\\book2.xls 是要打开的文件 当然也可以打开多个文件,在不同文件间复制

excel如何通过读取指定单元格内的数值来获取目标位置的内容?
例如:单元格1中内容为:a,单元格2会自动读取出:a,而当单元格中内容变为b直接的办法没有,应VBS编程了 ,ZRXcwa

excel vbs 判断为某一行选中后,执行代码
1").Cells.Count If Target.Cells.Count = ColumnMax And Target.Rows.Count = 1 Then MsgBox "选中了一行" Else MsgBox "未选中一行" End IfEnd Sub'以上代码判断只选中了一行才为真值,选中了两个及以上的整行都为假值,你想要什么样的结果,可以选参考增加判断条件 ...

用vbs 如何设置excel单元格 数值小数位数,还有设置成百分比?
Range("a1").Select '选定单元格 Selection.NumberFormatLocal = "0.00_ " '这是设成2位小数 Selection.NumberFormatLocal = "0.00% " '这是设成2位百分比 Selection.NumberFormatLocal = "0%" '这是设成整百分百小数

VBS怎么将excel中的某列或者某列的单元格格式设置成 文本格式?
参考如下:Worksheets("Sheetname").Activate Worksheets("SheetName").Columns(1).Select Selection.NumberFormat = "@"

vbs操作excel的问题,请大家帮忙啊
,"Excel.Application")msexcel.WorkSheets(1).cells(1,1).Activate msexcel.Activesheet.cells(1,1).value=data '===说明=== '上面的代码是打开一个同目录的名字是123.txt的文本文件并复制其中内容到指定单元格。

相似回答