0

我对 Excel 中的宏编程完全陌生,找不到任何参考资料来解决我的问题。

我在 Excel 中有一个包含几个单词的列。如果该词是动词,则在该词之后有一个星号(没有空格)。

例如,部分列如下所示:

accuse*
accustomed be*
acid
acidic
acquire*
acre

所以我需要:

  1. 查找单元格以星号结尾的所有实例,删除该星号,并将“to”一词放在单元格条目的前面。
  2. 如果单词有“be*”,那么我需要删除星号,单词“be”,并将“to be”放在前面。

完成的列应如下所示:

to accuse
to be accustomed
acid
acidic
to acquire
acre

这可能吗?

4

1 回答 1

2

试试这个(选择列表然后运行这个)

Sub Demo()
    Dim cl As Range

    For Each cl In Selection.Cells
        If Trim(cl) Like "*[*]" Then
            Cl = trim(cl)
            cl = "to " & Left(cl, Len(cl) - 1)
        End If
    Next
End Sub

实际数据包括训练换行符,有时 * 前有一个空格,有时 * 后有术语

这个版本处理这些问题

Sub Demo()
    Dim cl As Range
    Dim r As Range
    Dim str As String, i As Long
    Set r = Selection
    For Each cl In r.Cells
        str = Trim(cl)
        str = Replace(str, " *", "*")
        If Asc(Right$(str, 1)) <= 31 Then
            str = Trim(Left$(str, Len(str) - 1))
        End If
        If str Like "* be[*]*" Then
            i = InStr(str, "*")
            cl = "to be " & Left$(str, i - 4 & Mid$(str, i + 1))
        ElseIf str Like "*[*]*" Then
            i = InStr(str, "*")
            cl = "to " & Left$(str, i - 1) & Mid$(str, i + 1)
        End If
    Next
End Sub
于 2012-08-04T08:50:23.153 回答