隔离特定文本/数字组合并将其粘贴到新单元格中



嗨,我是Stackoverflow和VBA的新手。

我在表1的[描述]列中有一大组数据。我一直在尝试找到一种方法来从此列中选择特定数据,并将此特定数据粘贴到表1的另一列中。

例如,在 [描述] 列中,我有一些文本和一个发票编号 ex:FT022154。这些数据各不相同,有时有两三个发票编号,有时没有。我想隔离这些发票编号,然后将其复制并粘贴到 table1 的另一列中。

老实说,我不知道从哪里开始,也找不到与我的问题具体相关的任何内容。

编辑 1(已添加图像)表1截图

所以基本上,我不需要拆分"描述"列中的信息,只需复制所需的信息并将其粘贴到发票列中即可。感谢您的帮助!

下面的

代码对我有用。将其复制到新模块中,并更改工作表名称和列以适合您的工作簿。在我的代码中,C 列是说明,A 列是发票。您可能还需要重新定义fr(第一行),现在设置为 2。

Sub invoiceSeparation()

Dim tws As Worksheet
Dim description() As String
Dim fr, lr As Integer           'first row, last row of data

    Set tws = ThisWorkbook.Worksheets("InvoiceSeparation")
    fr = 2
    lr = tws.Range("C1000000").End(xlUp).Row
    With tws
        .Range("A" & fr & ":A" & lr).ClearContents
        For r = fr To lr
            description() = Split(.Range("C" & r).Value, " ", -1, vbTextCompare)
            For i = LBound(description) To UBound(description)
                If Left(description(i), 2) = "FT" Then
                    If Not IsEmpty(.Range("A" & r).Value) Then
                        .Range("A" & r).Value = .Range("A" & r).Value & " " & description(i)
                    Else
                        .Range("A" & r).Value = .Range("A" & r).Value & description(i)
                    End If
                End If
            Next i
        Next r
    End With

End Sub

如果您对这段代码的工作原理有任何疑问,请告诉我!

最新更新