Xin giúp đỡ về việc copy có điều kiện từ file TXT sang excel

Liên hệ QC

ThanRuaKaMe

Thành viên mới
Tham gia
7/1/08
Bài viết
27
Được thích
2
Em có file text đính kèm
Em muốn copy tất cả các ký tự nằm trong dấu ngoặc kép mà có ký tự bắt đầu là https://www.facebook.com/ sang excel.
Mỗi lần vào một dòng bên excel.
Xin giúp đỡ từ anh chị em trên diễn đàn.
Xin cảm ơn rất nhiều
Bài đã được tự động gộp:

File text của em đây ạ
 

File đính kèm

  • ban be.txt
    2 MB · Đọc: 20
Lần chỉnh sửa cuối:
Thực ra bạn có các đoạn vd. <a href="https://www.facebook.com/100003675804705" target="_blank">Thanh Trúc</a>

Đó là link.

Hãy mô tả kỹ, vì nhiều khi một chi tiết nhỏ có thể cho phép chọn cách làm ngắn gọn. Vì làm cho trường hợp tổng quát thì sẽ làm khác, mà làm cho trường hợp cụ thể có thể làm khác, ngắn gọn hơn.

1. Vậy thực ra là bạn muốn lấy các đoạn trong ngoặc trong các link hay muốn lấy các đoạn trong ngoặc bất kỳ mà bắt đầu bằng https://www.facebook.com/?

Vì nếu lấy các đoạn trong link thôi thì lấy "https://www.facebook.com/100003675804705" trong:
<a href="https://www.facebook.com/100003675804705" target="_blank">Thanh Trúc</a>

nhưng không lấy "https://www.facebook.com/" trong đoạn:
Em hãy gửi cho anh vào "https://www.facebook.com/" nhé

2. Thực ra là bạn muốn lấy toàn bộ link tới "https://www.facebook.com/" hay chỉ lấy các đoạn trong ngoặc?
Vì nếu chỉ lấy các đoạn trong ngoặc thì kết quả là:
"https://www.facebook.com/100003675804705"

Còn nếu lấy toàn bộ link thì kết quả là:
<a href="https://www.facebook.com/100003675804705" target="_blank">Thanh Trúc</a>
 
Nếu lấy link và tên thì:

1. Alt + F11 -> Insert -> Module -> dán code ở dưới vào Module vừa thêm.

2. Code cho là tập tin TXT ở cùng thư mục với tập tin Excel. Nếu có thể khác thì sửa đường dẫn ở filename = hoặc thêm code chọn tập tin.

3. Chọn sub get_links rồi Run hoặc gán cho Button sub get_links.

4. Code
Mã:
Sub get_links()
'    tap tin txt la noi dung HTML
'    tim cac link voi:
    Const prefix = "https://www.facebook.com/"
Dim result(1 To 50000, 1 To 2)
Dim fso As Object
Dim k1 As Long, k2 As Long, count As Long, text As String, findtext As String, filename As String
    Application.ScreenUpdating = False
    
    ThisWorkbook.Worksheets("Sheet1").Range("A2").Resize(50000, 2).ClearContents
    
    filename = ThisWorkbook.Path & "\ban be.txt"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    text = fso.OpenTextFile(filename, 1, , -2).ReadAll
    Set fso = Nothing
    
    findtext = "<a href=""" & prefix
    k1 = InStr(1, text, findtext)
    Do While k1 > 0
        count = count + 1
        k2 = InStr(k1 + 9, text, """")
        result(count, 1) = Mid(text, k1 + 9, k2 - k1 - 9)
        k1 = InStr(k2, text, ">")
        k2 = InStr(k1, text, "<")
        result(count, 2) = Mid(text, k1 + 1, k2 - k1 - 1)
        k1 = InStr(k2, text, findtext)
    Loop
    
    If count Then ThisWorkbook.Worksheets("Sheet1").Range("A2").Resize(count, 2).Value = result
    
    Application.ScreenUpdating = True
End Sub
 
Oa. Cảm ơn anh rất rất nhiều. Câu trả lời hơn cả những thứ em nghĩ. Thanks anh
 
Nếu lấy link và tên thì:

1. Alt + F11 -> Insert -> Module -> dán code ở dưới vào Module vừa thêm.

2. Code cho là tập tin TXT ở cùng thư mục với tập tin Excel. Nếu có thể khác thì sửa đường dẫn ở filename = hoặc thêm code chọn tập tin.

3. Chọn sub get_links rồi Run hoặc gán cho Button sub get_links.

4. Code
Mã:
Sub get_links()
'    tap tin txt la noi dung HTML
'    tim cac link voi:
    Const prefix = "https://www.facebook.com/"
Dim result(1 To 50000, 1 To 2)
Dim fso As Object
Dim k1 As Long, k2 As Long, count As Long, text As String, findtext As String, filename As String
    Application.ScreenUpdating = False
   
    ThisWorkbook.Worksheets("Sheet1").Range("A2").Resize(50000, 2).ClearContents
   
    filename = ThisWorkbook.Path & "\ban be.txt"
   
    Set fso = CreateObject("Scripting.FileSystemObject")
    text = fso.OpenTextFile(filename, 1, , -2).ReadAll
    Set fso = Nothing
   
    findtext = "<a href=""" & prefix
    k1 = InStr(1, text, findtext)
    Do While k1 > 0
        count = count + 1
        k2 = InStr(k1 + 9, text, """")
        result(count, 1) = Mid(text, k1 + 9, k2 - k1 - 9)
        k1 = InStr(k2, text, ">")
        k2 = InStr(k1, text, "<")
        result(count, 2) = Mid(text, k1 + 1, k2 - k1 - 1)
        k1 = InStr(k2, text, findtext)
    Loop
   
    If count Then ThisWorkbook.Worksheets("Sheet1").Range("A2").Resize(count, 2).Value = result
   
    Application.ScreenUpdating = True
End Sub
Vì em không hiểu món này nên sửa code mãi chưa được.
Nếu file text có khác biệt chút, vậy phải sửa trong file thế nào ạ? Anh hộ em
 

File đính kèm

  • fbID_.xlsb
    51.7 KB · Đọc: 3
  • New Text Document (2).txt
    3.1 MB · Đọc: 6
.
Bài đã được tự động gộp:

Vì em không hiểu món này nên sửa code mãi chưa được.
Nếu file text có khác biệt chút, vậy phải sửa trong file thế nào ạ? Anh hộ em
 

File đính kèm

  • New Text Document (2).txt
    3.1 MB · Đọc: 8
  • fbID_.xlsb
    51.7 KB · Đọc: 1
Lần chỉnh sửa cuối:
Vì em không hiểu món này nên sửa code mãi chưa được.
Nếu file text có khác biệt chút, vậy phải sửa trong file thế nào ạ? Anh hộ em
Bạn trích nhầm rồi. Code trong tập tin có phải của tôi đâu?

Ngoài ra hãy bỏ chút thời gian để giải thích cho người khác hiểu, là cái "chút" kia" mặt mũi thế nào. Nên cho ví dụ, với tập tin TXT đính kèm thì hãy đưa ra 10 kết quả mong đợi đầu tiên.

Bạn định bắt người khác phân tích nội dung của tập tin TXT 3 MB rồi đoán ý của bạn?
 
.
Vì em không hiểu món này nên sửa code mãi chưa được.
Nếu file text có khác biệt chút, vậy phải sửa trong file thế nào ạ? Anh hộ em
Nhìn qua bằng mắt thì tôi tin là code của tôi vẫn cho kết quả mà chả cần sửa gì cả.
 
Bạn trích nhầm rồi. Code trong tập tin có phải của tôi đâu?

Ngoài ra hãy bỏ chút thời gian để giải thích cho người khác hiểu, là cái "chút" kia" mặt mũi thế nào. Nên cho ví dụ, với tập tin TXT đính kèm thì hãy đưa ra 10 kết quả mong đợi đầu tiên.

Bạn định bắt người khác phân tích nội dung của tập tin TXT 3 MB rồi đoán ý của bạn?
Hì. Em không để ý nên nhầm.
Nội dung là: Em muốn copy tất cả những nội dung nằm trong dấu ngoặc kép mà có ký tự bắt đầu bằng: https://www.facebook.com/ sang cột 1 của file excel. Anh giúp em với nhé.
 
Cái này dùng Python (requests, BeautifulSoup) cho nhanh, lấy từ link website luôn..
Hì. Cảm ơn anh nhưng em không hiểu gì. Nhờ anh chỉ giáo thêm.
Bài đã được tự động gộp:

Cái này dùng Python (requests, BeautifulSoup) cho nhanh, lấy từ link website luôn..
Trước đây, anh giúp em bằng file này. Giờ nhờ anh chỉnh sửa giúp em được không? Cơ bản là em không hiều gì nên không biết sửa sao.
Cảm ơn anh nhiều
 

File đính kèm

  • fbID_.xlsb
    51.7 KB · Đọc: 4
Web KT
Back
Top Bottom