Word VBA代码从一列中剪切数字并粘贴到另一列中

Word VBA代码从一列中剪切数字并粘贴到另一列中,vba,ms-word,Vba,Ms Word,我正在寻找一些代码,可以在表格的第二列中逐单元格搜索数字和小数点,剪切它们并将它们粘贴到单元格左侧,同时保留文本 例如: 1(选项卡空间)测试 1.1(选项卡空间)测试 1.1.1(选项卡空间)测试 1.1.1.1(选项卡空间)测试 其中,项目符号表示不同列中的单独单元格 在所有情况下,数字都通过制表符空间“Chr9”与文本分开(如示例所示) 任何帮助或有用的代码片段都将不胜感激 编辑:我有一些代码可以扫描列中的每个单元格,但我不知道如何告诉它只将数字和小数点剪切到第一个选项

我正在寻找一些代码,可以在表格的第二列中逐单元格搜索数字和小数点,剪切它们并将它们粘贴到单元格左侧,同时保留文本

例如:

    • 1(选项卡空间)测试
    • 1.1(选项卡空间)测试
    • 1.1.1(选项卡空间)测试
    • 1.1.1.1(选项卡空间)测试
其中,项目符号表示不同列中的单独单元格

在所有情况下,数字都通过制表符空间“Chr9”与文本分开(如示例所示)

任何帮助或有用的代码片段都将不胜感激


编辑:我有一些代码可以扫描列中的每个单元格,但我不知道如何告诉它只将数字和小数点剪切到第一个选项卡空间。

拆分功能提供了您想要的内容。示例代码:

Dim inputString As String
Dim splitArray() As String
Dim result As String

inputString = "1 Test"
splitArray = Split(inputString, " ")

If(UBound(splitArray) >= 1) Then 'Making sure that it found something before using it
    result = splitArray(1) 'Text
End If

inputString = "1.1 Test"
splitArray = Split(inputString, " ")

If(UBound(splitArray) >= 1) Then
    result = splitArray(1) 'Text
End If
'etc.
更新

提供所需功能的代码:

  Dim splitArray() As String
  Dim curTable As Table
  Set curTable = ActiveDocument.Tables(1)
  For Row = 1 To curTable.Rows.Count
     With curTable
        splitArray = Split(.Cell(Row, 2).Range.Text, " ")

        If (UBound(splitArray) >= 1) Then 
           .Cell(Row, 2).Range.Text = splitArray(1)
           .Cell(Row, 1).Range.Text = splitArray(0)
        End If
     End With
  Next Row

是否有列表段落或数字只是手动键入的?它们已从自动编号更改为文本。请帮助我更好地理解这一点?我有一个朋友也在尝试帮助我们,我们已经到了代码识别“制表符空间”前的字符数的阶段,但我不知道如何操作范围来选择、剪切和粘贴这些字符characters@AneeshS当然Split函数根据特定字符(在本例中为“”)分割输入字符串。它返回一个数组,其中包含从零开始的所有元素。也就是说,如果你有一个字符串“anything2”;返回的数组将有2个元素:第一个元素(索引0)“任意”;第二个元素(索引1)“任何东西2”。如果您选择case,您要查找的内容总是出现在第二个位置。代码是否可以应用于任何场景,我想将第二个位置返回的字符粘贴到同一行,但左侧有一个单元格……我要向代码添加什么?@aneesh您可以用所需内容替换inputString和result。例如,如果当前单元格是第1行和第1列,您将有:splitArray=Split(Table.cell(1,1).Range.Text,”)和Table.cell(1,2).Range.Text=splitArray(1)好的,我会试一试,让您知道我的进展