仅知道一定数量的字符时替换文本字符串

马特·莱恩

我有一份PO号码清单。它们看起来像(4010059877-TUR36036133或TUR6039716 ## 4010073239)。我需要能够将单元格缩小到仅PO编号,即4010059877编号。我要排除的部分中唯一一致的部分是“ TUR #########”。

我已经编写了排除所有非数字字符的代码,但是某些单元格具有这些“ TUR#”。我进行了查找,并用通配符“ *”代替。我也在网上搜索,没有看到类似的内容。

查找并替换尝试的代码

Sub Replace()

    Columns("AJ").Replace What:="TUR*", _
                          Replacement:="", _
                          LookAt:=xlPart, _
                          SearchOrder:=xlByRows, _
                          MatchCase:=False, _
                          SearchFormat:=False, _
                          ReplaceFormat:=False 
End Sub

替换所有在TUR #########后面留下多余数字的非数字字符

Dim finRow As String
finRow = Sheets("Data").Range("A20000").End(xlUp).Row

Set myRange = Sheets("Data").Range("AK2:AK" & finRow)
For Each myCell In myRange
    LastString = ""
    For I = 1 To Len(myCell.Value)
        mT = Mid(myCell.Value, I, 1)
        If mT Like "[0-9]" Then
            tString = mT
        Else
            tString = ""
        End If
        LastString = LastString & tString
    Next I
    myCell.Value = LastString
Next

我的预期结果是将TUR #########消除并替换为空。

西里尔

您可以使用InStr()函数,然后使用它来支持Left,例如:

loc = instr(mycell,"TUR")
val = left(mycell.value,loc-1)

编辑1:

由于SJR的评论,将在位置1找到“ TUR”时添加处理该问题的示例:

loc = instr(mycell,"TUR")
if loc = 1 then
    val = ""
else
    val = left(mycell.value,loc-1)    
end if

编辑2:

Dim val as long 'assumes you will only have a number in the end
val = right(left(mycell.value,12),11)
mycell.value = val

这应该切断第一个括号,并且11位PO后的信息没有问题。这甚至可能特定于instr(mycell.value,“ TUR”)为true的情况(一个开关),以防您有其他可能的情况。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅替换一定数量的字符

Javascript-替换字符串中的一定数量的字符并保留其余字符

替换文本字符串javascript

用变量替换文本字符串

PHP替换字符串中一定数量的字符

仅使用现有字符串的一部分查找和替换文本字符串

在一定数量的字符后分割字符串

删除字符串后一定数量的字符

从文本中获取字符串加上一定数量的字符

如何用另一个文件的输入替换文本字符串

替换文本文件中最后一次出现的文本字符串

将文本字符串中的字符移动指定数量的位置

PostgreSQL-替换文本字段中字符串的所有实例

用Vue组件动态替换文本字符串

使用grep获取结果后如何替换文本字符串(批量)

如何通过使用sed读取列表来替换文本字符串

如何在 Linux 中用美元符号 $ 替换文本字符串?

如何截断PHP中最接近一定数量字符的单词的字符串?

如何在子字符串后捕获一定数量的字符?

Java如何在一定数量的字符后在空格处拆分字符串

在R中的字符串后提取一定数量的单词或特殊字符

如何在行尾之前将字符串分割成一定数量的字符?

一定数量的字符后格式化字符串

在JavaScript中一定数量的字符后在空格处拆分字符串

Vanilla JavaScript在字符串中一定数量的字符后附加<br>标签

如何从字符串文字中每行写出一定数量的字符?

如何将文件中一定数量的字符写入字符串?

正则表达式,用于从字符串末尾跳过一定数量的字符

删除R中一定数量字符下的字符串