Code lấy dữ liệu từ Notepad vào Excel

Liên hệ QC

1+1=2

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
5/7/20
Bài viết
62
Được thích
12
Chào các cô chú. Cháu có dùng đoạn code sau để Xuất dữ liệu từ Excel ra Notepad. bây giờ phải làm sao để copy Toàn bộ trong Notepad đổ ngược lại vào Excel
Đại khái đoạn code cháu mong muốn như thế này
1. Mở file notpad ( Tức nhiên đường dẫn cháu tự sữa )
2. Ctrl + A và tiếp tục Ctrl + C để copy tất cả dử liệu trong Notepad
3. Đặt con trỏ vào 1 ô nào đó trên bảng tình và Ctrl + V để Dán dữ liệu vào Excel
4. Đóng file notepad

Cháu xin chân thành cảm ơn các cô chú

1594649837376.png


Mã:
Sub xuatexcelnotepad()
On Error Resume Next
    Dim rngData As Range
    Dim strData As String
    Dim strTempFile As String

    ' Nguon copy
    Set rngData = Range("A1:h3000")
    rngData.Copy

    ' mac dinh
    With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipBoard
        strData = .GetText
    End With

    ' Duong dan notepad
    strTempFile = Range("m2").Value
    With CreateObject("Scripting.FileSystemObject")
        .CreateTextFile(strTempFile, True).Write strData
    End With


    Application.CutCopyMode = False


End Sub
 
Lần chỉnh sửa cuối:
Cháu chân thành cảm ơn 2 Bác @batman1 @HieuCD đã hỗ trợ. sau khi cháu kiểm tra lại thì code nó không lấy chính xác trong Notepad ra Excel nó tự xóa bỏ đi các dòng trống.
Bạn nên lưu ý là tôi trả lời bạn Cu Tồ về vấn đề trong bài #11. Bài #1 và bài #11 là 2 vấn đề khác nhau.
----------------------------------------------------------------------------------------------------------------
Mà không hiểu sao nó lại xóa đi mầy dòng trống. Cháu muốn nó kiểu như làm thủ công là Ctrl +A toàn bộ file Notepad sau đó Ctrl + C, rồi chọn vào Excel rồi Ctrl + V thế là xong
Tôi hiểu là bạn muốn y như ban đầu, tức 5 dòng có dữ liệu và 11 dòng trống. Nếu đúng thế thì trong Sub ImportTextToExcel sửa 3 dòng
Mã:
ReDim Preserve Res(1 To 65536, 1 To UBound(TextItem) + 1)
...
K = K + 1
...
[f1].Resize(K, UBound(Res, 2)) = Res
thành
Mã:
ReDim Preserve Res(1 To UBound(TotalLines) + 1, 1 To UBound(TextItem) + 1)
...
K = LineNum + 1
...
[f1].Resize(UBound(Res, 1), UBound(Res, 2)) = Res

Lưu ý
1. Tôi không tôi ưu code nguồn. Tôi chỉ chỉnh sửa để đáp ứng nhu cầu của bạn.
2. Tôi không chạy code kiểm tra. Tôi chỉ nhìn và chỉnh sửa bằng mắt khi viết bài.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn nên lưu ý là tôi trả lời bạn Cu Tồ về vấn đề trong bài #11. Bài #1 và bài #11 là 2 vấn đề khác nhau.
----------------------------------------------------------------------------------------------------------------

Tôi hiểu là bạn muốn y như ban đầu, tức 5 dòng có dữ liệu và 11 dòng trống. Nếu đúng thế thì trong Sub ImportTextToExcel sửa 3 dòng
Mã:
ReDim Preserve Res(1 To 65536, 1 To UBound(TextItem) + 1)
...
K = K + 1
...
[f1].Resize(K, UBound(Res, 2)) = Res
thành
Mã:
ReDim Preserve Res(1 To UBound(TotalLines) + 1, 1 To UBound(TextItem) + 1)
...
K = LineNum + 1
...
[f1].Resize(UBound(Res, 1), UBound(Res, 2)) = Res

Lưu ý
1. Tôi không tôi ưu code nguồn. Tôi chỉ chỉnh sửa để đáp ứng nhu cầu của bạn.
2. Tôi không chạy code kiểm tra. Tôi chỉ nhìn và chỉnh sửa bằng mắt khi viết bài.
dạ code chạy đúng ý cháu rồi ạ. Cháu cảm ơn bác nhiều. Chúc bác 1 buổi sáng thầy đầy năng lượng để làm việc
 
Upvote 0
Web KT
Back
Top Bottom