VBA精确文本匹配

VBA精确文本匹配,vba,excel,Vba,Excel,我试图使用InStr从现有文本文件中提取一列字母代码。我想让这个宏足够灵活,允许选择手动输入正在搜索的字母代码 我遇到的问题是,字母代码中有常见数字(即C4和C45)。最初编写代码是为了搜索2个特定的字母代码,我希望能够用指向2个单元格的链接替换这2个标识符 没有这样的运气,因为我不断得到不准确的回答。请参阅下面的代码: Private Sub CmdLettersGetfile_Click() Dim objFSO As Object Dim myDir As String, myList(

我试图使用
InStr
从现有文本文件中提取一列字母代码。我想让这个宏足够灵活,允许选择手动输入正在搜索的字母代码

我遇到的问题是,字母代码中有常见数字(即C4和C45)。最初编写代码是为了搜索2个特定的字母代码,我希望能够用指向2个单元格的链接替换这2个标识符

没有这样的运气,因为我不断得到不准确的回答。请参阅下面的代码:

Private Sub CmdLettersGetfile_Click()

Dim objFSO As Object
Dim myDir As String, myList()
Dim objFolder As Object
Dim objFile As Object
Dim i As Integer
Dim sFolder As String
Dim fd As Office.FileDialog

Dim row As Long
Dim row1 As Long
Dim FCount As Integer
Dim FCount1 As Integer
Dim Val As String

Dim Pos As Integer
Dim Last1 As Long  'Mark the last row
Dim Start2 As Long
Dim Last2 As Long  'Mark the last row
Set fd = Application.FileDialog(msoFileDialogFilePicker)

       For Each cn In ThisWorkbook.Connections
cn.Delete
Next cn


 With ActiveSheet
     Lastrow = Sheets("MAIN").Cells(.Rows.Count, "E").End(xlUp).row
End With
'
Worksheets("REPORT").Range("A6:AA1000000").ClearContents
Worksheets("REPORT").Range("A6:AA1000000").ClearFormats
row1 = 6  'Start of REPORT ROW

For row = 12 To Lastrow
sFile = Worksheets("MAIN").Cells(row, "E").Value

 
 Pos = InStr(1, sFile, "org")
 
 If Pos = 0 Then
 Val = Worksheets("MAIN").Cells(9, "H")
 Else
 Val = Worksheets("MAIN").Cells(10, "H")
 End If
 
 Pos = 0
 


Dim strFilename As String
Dim strTextLine As String
Dim iFile As Integer

iFile = FreeFile
strFilename = folderName & "\" & sFile
Open strFilename For Input As #iFile


Last1 = 0
Last2 = 0

Do Until EOF(1)
    Line Input #1, strTextLine
    FCount = FCount
    Pos = InStr(1, strTextLine, Val)
为了节省空间,我清理了一些不相关的代码,并将注意力集中在我遇到问题的行上

********更新(2018年4月26日美国东部时间18:12): 当我试图将
Val
格式化为一个大写字母和两个数字时

Dim Val As String: Val = "([A-Z]{1})([0-9]{1})([0-9]{1})"
我得到以下信息:

第一列是我需要缩小的字母代码

*********更新2(美国东部时间2018年4月27日14:37):


我能够批量编辑我需要的内容。我希望这能让我更深入地了解我要做的事情。

现在看来是研究正则表达式的好时机=)好了,你冷静下来了吗?“我是XYZ的新手”这句话确实有些模糊,就像“你好”和“感谢您的帮助”一样,在这个网站的每一篇帖子中都会被删除(有些帖子是系统自动删除的)。“vba正则表达式”是我通过谷歌搜索得到的第一个结果,上面的链接。这就是我所说的“题为”的意思:你期望别人为你做研究。我给的是鱼竿,不是鱼。这里没有免费的午餐。点击Mathieu发布的链接。没有必要老是说坏话。他真的很想帮忙。我会说,给它半个小时,你将能够解决它自己,如果不回来@me,我会亲自帮助你。Regex非常强大而且易于使用。而且,FWIW,我是一名士兵。我宁愿有人教我怎么做,也不愿意为我做。很抱歉,我之前太矮了。