VBA精确文本匹配

时间:2018-04-26 16:34:52

标签: excel vba excel-vba

我正在尝试使用现有文本文件中的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})"

我得到以下内容:

Resulting data

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

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

Expanded resulting data

我能够批量编辑我需要的东西。我希望这能让我更深入地了解我的目标。

0 个答案:

没有答案
相关问题