首页 > 解决方案 > Excel:删除开头和结尾的单词

问题描述

我试图从表中的字符串中找出一些公司的名称。

每个字符串以 2 个单词(需要删除)开始,并以不同数量的单词/字符结束。

我尝试了以下公式,以删除前两个单词:

=MID(A6,1+FIND("~",SUBSTITUTE(A6," ","~",2)),255)

但我不明白如何删除最后的单词/字符。

这是示例:

在此处输入图像描述

A列是原文。B 列是结果(它应该是什么样子)。

也许有一种更简单/更好的方法可以用 VBA 解决它?

@罗恩罗森菲尔德:

在此处输入图像描述

标签: excelvbaexcel-formula

解决方案


我不确定右侧截止的标准是什么,所以这里有两种方法。

这个假设总是有一个国家代码(XX):

    Dim i As Long
    Dim lr As Long
    Dim strarr() As String
    Dim j As Long
    With ThisWorkbook.Sheets("Sheet1") 'Change this to your sheet name
        lr = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 1 To lr
            strarr = Split(.Cells(i, 1).Value, " ")
            For j = 2 To UBound(strarr)
                If strarr(j) Like "(??)" Then
                    Exit For
                Else
                    .Cells(i, 2).Value = .Cells(i, 2).Value & " " & strarr(j)
                End If
            Next j
        Next i
    End With

下一个基本相同,只是它假设您要删除数组的最后两个元素。

    Dim i As Long
    Dim lr As Long
    Dim strarr() As String
    Dim j As Long
    With ThisWorkbook.Sheets("Sheet1") 'Change this to your sheet name
        lr = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 1 To lr
            strarr = Split(.Cells(i, 1).Value, " ")
            For j = 2 To UBound(strarr) - 2
                .Cells(i, 2).Value = .Cells(i, 2).Value & " " & strarr(j)
            Next j
        Next i
    End With

推荐阅读