Word VBA代码从一列中删除数字并将其粘贴到另一列中

时间:2013-08-29 10:42:41

标签: vba ms-word word-vba

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

例如:

    • 1(标签空间)测试
    • 1.1(标签空间)测试
    • 1.1.1(标签空间)测试
    • 1.1.1.1(标签空间)测试

子弹点代表不同列中的单独单元格。

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

任何帮助或有用的代码片段都会非常感激!

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

1 个答案:

答案 0 :(得分:0)

Split功能可以满足您的需求。示例代码:

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