VBA搜索和复制

VBA搜索和复制,vba,excel,Vba,Excel,我正在自动更新我必须做的事情,我想写的宏的一部分需要特定的文本来填充。 我在同一列中有数百行的以下文本类型: 屏幕录制^naushi02^PRORC^10035 PRORC^10635^屏幕录制^misby01 屏幕录制^liw03^PRORC^10046 我已经把我需要的文本加粗了。我想用我需要的内容替换整个文本,或者将我需要的内容放在下一列的同一行 在我意识到格式有变化之前,我已经写了60行左右的东西。总的来说,这一切都是一样的,这就是为什么我一开始没有意识到,我花了很多时间写了一些现在已经

我正在自动更新我必须做的事情,我想写的宏的一部分需要特定的文本来填充。 我在同一列中有数百行的以下文本类型:

屏幕录制^naushi02^PRORC^10035

PRORC^10635^屏幕录制^misby01

屏幕录制^liw03^PRORC^10046

我已经把我需要的文本加粗了。我想用我需要的内容替换整个文本,或者将我需要的内容放在下一列的同一行

在我意识到格式有变化之前,我已经写了60行左右的东西。总的来说,这一切都是一样的,这就是为什么我一开始没有意识到,我花了很多时间写了一些现在已经无用的东西。。。所以我请求专家的帮助

一旦我从第一行得到了我需要的东西,我需要向下移动直到最后一个条目重复

我有一些代码显然不能完全工作

我曾考虑过在搜索中使用“ScreenRecording”文本以及键盘上找不到的特殊字符,然后尝试复制从该点到第二个数字字符的所有文本。我不知道怎么做,如果它能工作,或者即使它是一个好主意,但因为我花了这么多时间试图解决它,我需要一些帮助


提前感谢

如果您总是想返回单词“ScreenRecording”后面的值,您可以使用以下函数来执行此操作

将其包含在
子例程中,以便在需要时就地更换:

Function SplitScreenRecording(sInput As String) As String
    Dim a As Variant

    Const SDELIM As String = "^"
    Const LOOKUP_VAL As String = "ScreenRecording"

    a = Split(sInput, SDELIM)

    If IsError(Application.Match(LOOKUP_VAL, a, 0)) Then
        SplitScreenRecording = CVErr(2042)
    Else
        SplitScreenRecording = a(Application.Match(LOOKUP_VAL, a, 0))
    End If
End Function

Sub ReplaceInPlace()
    Dim rReplace As Range
    Dim rng As Range

    Set rReplace = Range("A1:A3")

    For Each rng In rReplace
        rng.Value = SplitScreenRecording(rng.Value)
    Next rng
End Sub

如果您总是希望返回单词“ScreenRecording”后面的值,可以使用以下函数来执行此操作

将其包含在
子例程中,以便在需要时就地更换:

Function SplitScreenRecording(sInput As String) As String
    Dim a As Variant

    Const SDELIM As String = "^"
    Const LOOKUP_VAL As String = "ScreenRecording"

    a = Split(sInput, SDELIM)

    If IsError(Application.Match(LOOKUP_VAL, a, 0)) Then
        SplitScreenRecording = CVErr(2042)
    Else
        SplitScreenRecording = a(Application.Match(LOOKUP_VAL, a, 0))
    End If
End Function

Sub ReplaceInPlace()
    Dim rReplace As Range
    Dim rng As Range

    Set rReplace = Range("A1:A3")

    For Each rng In rReplace
        rng.Value = SplitScreenRecording(rng.Value)
    Next rng
End Sub

如果要替换:

Sub main2()
    Dim key As String
    Dim replacementStrng As String

    key = "ScreenRecording"
    replacementStrng = "AAA"
    With Worksheets("mysheet01").columns("A") '<--| change "mysheet01" and "A" to your actual sheet name and column to filter
        .Replace what:=key & "^*^", replacement:=key & "^" & replacementStrng & " ^ ", LookAt:=xlPart
        .Replace what:="^" & key & "^*", replacement:="^" & key & "^" & replacementStrng, LookAt:=xlPart
    End With
End Sub
Sub main2()
将键变暗为字符串
Dim REPLACENTSTRNG作为字符串
key=“屏幕录制”
替换strng=“AAA”

使用工作表(“mysheet01”)。列(“A”)如果要替换:

Sub main2()
    Dim key As String
    Dim replacementStrng As String

    key = "ScreenRecording"
    replacementStrng = "AAA"
    With Worksheets("mysheet01").columns("A") '<--| change "mysheet01" and "A" to your actual sheet name and column to filter
        .Replace what:=key & "^*^", replacement:=key & "^" & replacementStrng & " ^ ", LookAt:=xlPart
        .Replace what:="^" & key & "^*", replacement:="^" & key & "^" & replacementStrng, LookAt:=xlPart
    End With
End Sub
Sub main2()
将键变暗为字符串
Dim REPLACENTSTRNG作为字符串
key=“屏幕录制”
替换strng=“AAA”

对于工作表(“mysheet01”).columns(“A”)“选择“^”字符正确出现的规则是什么?选择“^”字符正确出现的规则是什么?感谢您的建议,这是一个很大的帮助。欢迎您。如果我填好了你的问题,请将答案标记为已接受。谢谢你的建议,这是一个很大的帮助。欢迎你。如果我填好了你的问题,请将答案标记为已接受。非常感谢。