所以目前我的VBA代码如下所示:
Sub Testing()
Dim K As Long
Dim LR As Long
LR = Cells(Rows.Count, 1).End(xlUp).Row
For K = 2 To LR
Cells(K, 2).Value = StripAfter(Cells(K, 1), "_", 6)
Next K
End Sub
Function StripAfter(ByVal txt As String, ByVal delimiter As String, ByVal
occurrence As Long) As String
Dim x As Variant
x = Split(expression:=txt, delimiter:=delimiter, limit:=occurrence + 1)
StripAfter = x(UBound(x))
End Function
有了这个输出,这正是公式所要做的,这是很棒的!我的问题是,对于B列中的结果,我不能全神贯注于此(我是VBA宏的新手,试图尽可能地学习),它们都以数字结尾,数字之间有X
。我将如何调整我的代码,使其删除该部分文本?所以结果看起来像:
正如您从我要查找的结果中可以看到的,与给出的结果相比,###x##
在末尾被删除。我在VBA之外玩了一圈,发现这是可行的,但它本质上是一个两步过程:
=RIGHT(SUBSTITUTE(A1,"_",CHAR(10),12),LEN(A1)-FIND(CHAR(10),SUBSTITUTE(A1,"_",CHAR(10),12),1)+1)
=LEFT(A20,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A20&"0123456789")) -1)
我也很难处理这样的公式,所以我使用了正则表达式,在函数中添加了几行。基本上是模式匹配。你的潜艇和以前一样。
Function StripAfter(ByVal txt As String, ByVal delimiter As String, ByVal occurrence As Long) As String
Dim x As Variant
x = Split(expression:=txt, delimiter:=delimiter, limit:=occurrence + 1)
StripAfter = x(UBound(x))
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "\d+x\d+$" 'match 1+ numbers followed by x followed by 1+ numbers at the end of a string
If .Test(StripAfter) Then StripAfter = .Replace(StripAfter, "") 'if pattern found replace with empty string
End With
End Function
问题内容: 我有以下代码: 我期望: 我有: 现在我做 有没有更好的办法? 问题答案: 并不意味着“删除此子字符串”。视为一组字符,并从的两端去除该组中的所有字符。 在 Python 3.9及更高版本上, 您可以使用和方法从字符串的任一侧删除整个子字符串: 相关的Python增强建议是PEP-616。 在 Python 3.8及更早版本上, 您可以使用和切片: 或正则表达式:
问题内容: 我有一串琴弦,其中一些琴弦。我只想删除最后四个字符。 换句话说,我有 我希望它成为 Python处理此问题的方法是什么? 问题答案:
问题内容: 我想删除字符串末尾的逗号。由于现在我正在使用 但这只会删除字符串的最后一个字符。我正在动态添加字符串,因此有时字符串末尾没有逗号。如果字符串末尾有逗号,如何使PHP从字符串末尾除去逗号? 问题答案: 此处的文档
问题内容: 我有一个字符串,我想仅使用Java从字符串的结尾删除行尾字符 我想成为 (此问题类似于但与问题593671不同) 问题答案: 您可以使用。这修剪和字符在字符串的结尾 正则表达式的解释如下: 是包含和的字符类 是一个或多个重复 是弦末锚 参考文献 regular-expressions.info/Anchors,角色类,重复 相关话题 您还可以使用修剪字符串 开头 和 结尾 的 所有 空
问题内容: 我需要在字符串中的单词之后删除空格。可以用一行代码完成吗? 例: 问题答案: 更多关于在文档
问题内容: 仅在句点结束时,如何删除最后一个字符? 问题答案: (参考:PHP.net上的rtrim)