N Khánh
Thành viên mới

- Tham gia
- 22/11/18
- Bài viết
- 30
- Được thích
- 0
Public Sub hello()
Dim filename As String, content As String, fs As Object
Dim rs As Object, mats As Object, arr, r As Long
filename = Sheet1.[L1]
Set fs = CreateObject("scripting.FileSystemObject").OpenTextFile(filename)
content = fs.ReadAll
fs.Close
Set rs = CreateObject("VBScript.RegExp")
rs.IgnoreCase = True
rs.Pattern = "(T[1-4])\s[\s\S]+?G[0-9]{2}\sG[0-9]{2}\s(Z[^\s]+)\s"
rs.Global = True
Set mats = rs.Execute(content)
Sheet1.Range("A7").Resize(100, 2).ClearContents
If mats.Count > 0 Then
ReDim arr(1 To mats.Count, 1 To 2)
For r = 1 To mats.Count
arr(r, 1) = mats(r - 1).submatches(0)
arr(r, 2) = mats(r - 1).submatches(1)
Next
Sheet1.Range("A7").Resize(UBound(arr), UBound(arr, 2)).Value = arr
End If
End Sub
Dạ tuyệt vời quá ạ, em làm vội cái đường dẫn ẩu quáThích lấy như hình sẽ được như hình. Ô L1 chứa được đường dẫn file cũng ngộ ha...
Mã:Public Sub hello() Dim filename As String, content As String, fs As Object Dim rs As Object, mats As Object, arr, r As Long filename = Sheet1.[L1] Set fs = CreateObject("scripting.FileSystemObject").OpenTextFile(filename) content = fs.ReadAll fs.Close Set rs = CreateObject("VBScript.RegExp") rs.IgnoreCase = True rs.Pattern = "(T[1-4])\s[\s\S]+?G[0-9]{2}\sG[0-9]{2}\s(Z[^\s]+)\s" rs.Global = True Set mats = rs.Execute(content) Sheet1.Range("A7").Resize(100, 2).ClearContents If mats.Count > 0 Then ReDim arr(1 To mats.Count, 1 To 2) For r = 1 To mats.Count arr(r, 1) = mats(r - 1).submatches(0) arr(r, 2) = mats(r - 1).submatches(1) Next Sheet1.Range("A7").Resize(UBound(arr), UBound(arr, 2)).Value = arr End If End Sub
em muốn hỏi cái@N Khánh
Thay đổi Mảng:
ReDim arr(1 To mats.Count, 1 To 2) -> ReDim arr(1 To mats.Count, 1 To 3)
Thêm:
arr(r, 3) = mats(r - 1)
Chắc phải sửa thêm Regexp
Tôi không hiểu câu hỏi. Có lẽ câu hỏi bị sai ở câu này "cái tên file excel ko cố định là sheet1" . Nên không thể trả lờiem muốn hỏi cái
filename = Sheet1.[L1]
cái tên file excel ko cố định là sheet1 thì có cách nào để nó nhận theo tên của file excel đang mở không ạ
Thử cái này:em muốn hỏi cái
filename = Sheet1.[L1]
cái tên file excel ko cố định là sheet1 thì có cách nào để nó nhận theo tên của file excel đang mở không ạ
Sub a()
MsgBox ThisWorkbook.Name
MsgBox ThisWorkbook.Path
MsgBox ThisWorkbook.FullName
End Sub
Dạ tuyệt vời quá ạ, em làm vội cái đường dẫn ẩu quá(
Em muốn nhờ nốt giúp em lấy cái dòng thông tin ứng với mỗi T như thế này được không ạ. Còn cái nè nữa là em không phải làm thủ công nữa
View attachment 209555
em gủi lại cái excel mẫu ạ. Em cảm ơn nhiều