- ©«¤l
- 109
- ¥DÃD
- 2
- ºëµØ
- 0
- ¿n¤À
- 114
- ÂI¦W
- 0
- §@·~¨t²Î
- Win7 Win10
- ³nÅ骩¥»
- Office 2019 WPS
- ¾\ŪÅv
- 20
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ²`¦`
- µù¥U®É¶¡
- 2013-2-2
- ³Ì«áµn¿ý
- 2024-11-6
|
¦^´_ 1# ljuber - Private Sub StartLoadText()
- Const ColumnsNum As Long = 7
- Dim strFind As String
- Dim Value() As Variant, valRow() As String
- Dim StartRow As Long
- Dim textFile As String
- Dim bytArr() As Byte
- Dim I As Long, J As Long
- Dim TextFileName As Variant
- Dim RegExp As Object
- Dim Matchs As Object
-
- On Error Resume Next
- Set RegExp = CreateObject("VBScript.RegExp")
- If RegExp Is Nothing Then Exit Sub
- TextFileName = Application.GetOpenFilename(FileFilter:="Text File,*.TXT", FilterIndex:=1, Title:="Please Change a Text File")
- StartRow = Sheet2.Range("A" & Sheet2.Rows.Count).End(xlUp).Row
- If StartRow < 2 Then Exit Sub
- If VarType(TextFileName) = vbString Then
- I = FileLen(TextFileName)
- If I < 1 Then Exit Sub
- ReDim bytArr(0 To I - 1)
- I = FreeFile
- Open TextFileName For Binary As I
- Get I, , bytArr()
- Close I
- textFile = StrConv(bytArr, vbUnicode)
- Erase bytArr
- With RegExp
- .Global = True
- .IgnoreCase = True
- If StartRow > 2 Then
- .Pattern = "(\S+\t){4}((" & Join(Application.WorksheetFunction.Transpose(Sheet2.Range("A2:A" & StartRow).Value), ")|(") & "))(\t.+)*"
- Else
- .Pattern = "(\S+\t){4}(" & Sheet2.Range("A2").Value & ")(\t.+)*"
- End If
- Set Matchs = .Execute(textFile)
- End With
- With Matchs
- ReDim Value(0 To .Count - 1, 0 To ColumnsNum - 1)
- For I = 0 To .Count
- valRow = Split(.Item(I), vbTab)
- For J = 0 To ColumnsNum - 1
- Value(I, J) = valRow(J)
- Next J
- Next I
- End With
- Set Matchs = Nothing: Set RegExp = Nothing
- StartRow = Sheet1.Range("A" & Sheet1.Rows.Count).End(xlUp).Row
- StartRow = StartRow + 1
- Application.ScreenUpdating = False
- Sheet1.Range("A" & StartRow).Resize(I - 1, ColumnsNum).Value = Value
- Application.ScreenUpdating = True
- End If
- End Sub
½Æ»s¥N½X ¹B¦æªþ¥ó
½m²ß.zip (350.79 KB)
¤¤ªº«ö¶s¡G |
|