String VBA查找单元格中的数字、字母和字符,并仅用数字/字母替换单元格内容
还有一个问题 我正在我的工厂里创建另一个Excel工具,目前我所拥有的工具从采购订单跟踪网站中提取数据,过滤掉多余的数据,只留下采购订单标签本身、一个单引号和一个结束括号。我需要删除引号和结束括号,所以我只有采购订单本身,因为我需要这个注入到另一个网站的URL。我已经尝试在我编写的一些代码中使用通配符,但是PO将被几个星号代替,也就是“通配符”。我可能忽略了一些显而易见的事情,但我想不出来 数据示例: 代码示例:String VBA查找单元格中的数字、字母和字符,并仅用数字/字母替换单元格内容,string,vba,excel,String,Vba,Excel,还有一个问题 我正在我的工厂里创建另一个Excel工具,目前我所拥有的工具从采购订单跟踪网站中提取数据,过滤掉多余的数据,只留下采购订单标签本身、一个单引号和一个结束括号。我需要删除引号和结束括号,所以我只有采购订单本身,因为我需要这个注入到另一个网站的URL。我已经尝试在我编写的一些代码中使用通配符,但是PO将被几个星号代替,也就是“通配符”。我可能忽略了一些显而易见的事情,但我想不出来 数据示例: 代码示例: Sub Filter_DockMaster_Data2() Dim Main
Sub Filter_DockMaster_Data2()
Dim Main As Worksheet
Set Main = Worksheets("Main")
Dim ISA_List As Worksheet
Set ISA_List = Worksheets("ISA_List")
Dim ISA_Results As Worksheet
Set ISA_Results = Worksheets("ISA_Results")
Dim ISA_Raw As Worksheet
Set ISA_Raw = Worksheets("ISA_Raw")
Worksheets("ISA_Results").Select
Range("A1").Select
Do Until IsEmpty(ActiveCell)
ActiveCell.replace What:="********"" ]", Replacement:="********", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveCell.Offset(1, 0).Select
Loop
End Sub
希望这是有道理的
快速笔记,采购订单的长度将随着时间的推移而变化,所以如果可能的话,我想让它变得动态。非常感谢您的帮助。请为URL编码
使文本URL友好的功能如何?:)
例如,这:
1234ABCD']
…编码为:
1234ABCD%27%5D
…准备插入查询参数(URL)字符串。请参阅以下链接中的文档,包括更多示例
文本功能,如
LEFT
也就是说,还有其他几种方法可以做到这一点
你说了“替换”,但看起来你只需要剪掉最后两个字符
这将剪切A1
中文本的最后两个字符:
=LEFT(A1,LEN(A1)-2)
替换
功能
如果确实要“替换”单元格中的文本,可以使用SUBSTITUTE
:
示例:
如果单元格A1
包含:
1234ABCD']
…您可以在另一个单元格中输入:
=SUBSTITUTE(A1,"]","")
…这将只删除]
。您还可以嵌套函数。要同时删除]
和'
,请使用以下公式:
=SUBSTITUTE(SUBSTITUTE(A1,"]",""),"'","")
替换函数语法:
替换(
<代码>文本,旧文本,新文本,[实例数] <代码>)
SUBSTITUTE
函数语法具有以下参数:
-(必选)包含要替换字符的文本的文本或对单元格的引用李>Text
-(必需)要替换的文本李>Old_text
—(必需)要替换的New\u text
文本李>old\u text
-(可选)指定要替换为Instance\u num
新文本的
旧文本的出现。如果指定
,则仅替换instance\u num
旧文本的该实例。否则,文本中每次出现的
都会更改为old\u text
new\u text
更多信息:
- Microsoft支持:
- 堆栈溢出:
- Microsoft支持:
- 杰特里:
- Microsoft支持:
- 您的问题不应该是修复从某个来源提取的数据。它真的应该是关于修复检索过程,这样你就不会得到流氓字符
这么说来,这个子过程应该可以快速地从A列中删除任何流氓角色
Option Explicit
Sub posOnly()
Dim i As Long, str As String, rgx As Object
Set rgx = CreateObject("VBScript.RegExp")
'pattern for A-Z (case sensitive) or 0-9 exactly 8 characters/digits in length
rgx.Pattern = "[A-Z0-9]{8}"
With Worksheets("ISA_Results")
For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
str = .Cells(i, "A").Value2
If rgx.Test(str) Then
str = rgx.Execute(str).Item(0)
.Cells(i, "A") = str
End If
Next i
End With
End Sub
这是一大堆有用的信息,谢谢。老实说,我甚至不知道有一个函数可以自动将文本转换为URL可读。我在这个职位上只呆了几个星期,我的训练不是最好的。这是难以置信的帮助,所以再次感谢你!
Option Explicit
Sub posOnly()
Dim i As Long, str As String, rgx As Object
Set rgx = CreateObject("VBScript.RegExp")
'pattern for A-Z (case sensitive) or 0-9 exactly 8 characters/digits in length
rgx.Pattern = "[A-Z0-9]{8}"
With Worksheets("ISA_Results")
For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
str = .Cells(i, "A").Value2
If rgx.Test(str) Then
str = rgx.Execute(str).Item(0)
.Cells(i, "A") = str
End If
Next i
End With
End Sub