nhờ các anh chị tham khảo có thể rút gọn đoạn code để chạy nguồn dữ liệu nhanh hơn giúp em ạ

Liên hệ QC

MỹHạnhCB

Đi mây, về gió. !!!
Tham gia
25/3/22
Bài viết
123
Được thích
18
"Nhờ các anh chị rút gọn giúp e đoạn code để chạy nhanh hơn được không ạ. E cám ơn nhiều"

Dạ em đã nhận được sự hổ trợ của a "batman1" và đã chạy thành công rồi ạ. Em xin cảm ơn các anh chị trong GPE nhiều. Lần đầu tiên gia nhập nhóm nên em vẫn chưa hiểu gì nhiều về nhóm nên có gì sai sót mong các anh chị bỏ qua giúp em nhé. Lần nữa em xin cảm ơn các anh chị nhiều.
 
Lần chỉnh sửa cuối:
bạn muốn làm gì với nó. nói cụ thể nào
 
Upvote 0
Ý đoạn code hiện tại e chạy file đính kèm thì tầm 15p mới hoàn thành á a, ý e là có thể rút gọn hay tăng tốc nó nhanh hơn đc không ạ, tại nguồn dl có thể sẽ lớn hơn file đính kèm e gửi ạ
 
Upvote 0
Nhầm ...................... .
 
Upvote 0
Cái cần rút gọn thì không rút gọn, cái không cần thì lại rút gọn
E cũng mầy mò gắp đoạn này bỏ đoạn kia để code chạy theo đúng mục đích ah a , chứ cũng không gọi là rành rọt gì cả. A có kinh nghiệm thì có thể truyền đạt lại chút ít ạ. E cảm ơn
 
Upvote 0
E cũng mầy mò gắp đoạn này bỏ đoạn kia để code chạy theo đúng mục đích ah a , chứ cũng không gọi là rành rọt gì cả. A có kinh nghiệm thì có thể truyền đạt lại chút ít ạ. E cảm ơn
Thôi giờ như này nhé, mình nói có ý nhưng mà bạn ngây thơ vô số tội nên không hiểu:
1/ Sửa tiêu đề "a/c", không viết tắt trong bài nhé
2/ Kèm thêm một cái file khi bạn dùng msoFileDialogFilePicker để mở lên
3/ Mô tả rõ ràng cách làm, mình không muốn đọc mớ code của bạn để hiểu ý đồ là gì. Minh họa kết quả mong muốn
GPE rất nhiệt tình, quan trọng là ở thái độ và thông tin về dữ liệu của bạn đầy đủ thì sẽ được giúp đỡ nhiệt tình, chu đáo!
Vậy nhé!
 
Upvote 0
Thôi giờ như này nhé, mình nói có ý nhưng mà bạn ngây thơ vô số tội nên không hiểu:
1/ Sửa tiêu đề "a/c", không viết tắt trong bài nhé
2/ Kèm thêm một cái file khi bạn dùng msoFileDialogFilePicker để mở lên
3/ Mô tả rõ ràng cách làm, mình không muốn đọc mớ code của bạn để hiểu ý đồ là gì. Minh họa kết quả mong muốn
GPE rất nhiệt tình, quan trọng là ở thái độ và thông tin về dữ liệu của bạn đầy đủ thì sẽ được giúp đỡ nhiệt tình, chu đáo!
Vậy nhé!
Ok cám ơn bác nhé, em mới vô nhóm nên chưa biết gì nhiều ạ, để em chỉnh sửa lại cho đúng ạ
 
Upvote 0
Ok cám ơn bác nhé, em mới vô nhóm nên chưa biết gì nhiều ạ, để em chỉnh sửa lại cho đúng ạ
Hiện giờ em không biết thay đổi mọi nội dung của bài viết như thế nào ngoại trừ cái tiêu đề , nên em xin phép bỏ lên trong trả lời luôn nhé. Cám ơn ạ
 

File đính kèm

  • filechuacode.xlsm
    27.4 KB · Đọc: 10
  • filedulieu.xlsx
    135.8 KB · Đọc: 15
Upvote 0
Hiện giờ em không biết thay đổi mọi nội dung của bài viết như thế nào ngoại trừ cái tiêu đề , nên em xin phép bỏ lên trong trả lời luôn nhé. Cám ơn ạ
Mục đích e muốn là chuyển cột dữ liệu ở cột A sang text to column, sau đó copy từng dòng dữ liệu sang sheet2 và dán ở chế độ chuyển sang cột. Và tiếp tục copy dòng tiếp theo và dán ở ô tiếp theo của dòng copy trước ở sheet2 ạ
 
Upvote 0
Đủ 5 từ chưa?
Mã:
Sub getinfo_Film1234()
Dim fd As FileDialog
Dim wb As Workbook, sh As Worksheet, kq()
Dim lastRow As Long, lastCol As Long, count As Long, k As Long, r As Long, n As Long
    'Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    Application.AskToUpdateLinks = False
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .Title = "Select Log Film"
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "excel file", "*.xlsx"
        .InitialFileName = ""
        If .Show <> -1 Then Exit Sub
    End With
    ReDim kq(1 To 1000000, 1 To 1)
    For k = 1 To fd.SelectedItems.count
        count = 0
        Set wb = Workbooks.Open(fd.SelectedItems(k))
        If wb.Worksheets.count = 1 Then
            Set sh = wb.Worksheets.Add
            sh.Name = "Sheet2"
        Else
            Set sh = wb.Worksheets("Sheet2")
        End If
        With wb.Worksheets("Sheet1")
            lastRow = .Cells(Rows.count, "A").End(xlUp).Row
            .Range("A1").Resize(lastRow).TextToColumns DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
                                                                                Other:=True, OtherChar:=";", TrailingMinusNumbers:=True
            For r = 1 To lastRow
                If .Range("A" & r).Value <> "" Then
                    lastCol = .Cells(r, Columns.count).End(xlToLeft).Column
                    For n = 1 To lastCol
                        kq(count + n, 1) = .Cells(r, n).Value
                    Next n
                    count = count + lastCol
                End If
            Next r
            sh.Range("A1").Resize(count).Value = kq
            wb.Close True
        End With
    Next k
 
'    Application.Calculation = xlCalculationAutomatic
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.AskToUpdateLinks = True
    MsgBox "Done"
End Sub
 
Upvote 0
Đủ 5 từ chưa?
Mã:
Sub getinfo_Film1234()
Dim fd As FileDialog
Dim wb As Workbook, sh As Worksheet, kq()
Dim lastRow As Long, lastCol As Long, count As Long, k As Long, r As Long, n As Long
    'Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    Application.AskToUpdateLinks = False
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .Title = "Select Log Film"
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "excel file", "*.xlsx"
        .InitialFileName = ""
        If .Show <> -1 Then Exit Sub
    End With
    ReDim kq(1 To 1000000, 1 To 1)
    For k = 1 To fd.SelectedItems.count
        count = 0
        Set wb = Workbooks.Open(fd.SelectedItems(k))
        If wb.Worksheets.count = 1 Then
            Set sh = wb.Worksheets.Add
            sh.Name = "Sheet2"
        Else
            Set sh = wb.Worksheets("Sheet2")
        End If
        With wb.Worksheets("Sheet1")
            lastRow = .Cells(Rows.count, "A").End(xlUp).Row
            .Range("A1").Resize(lastRow).TextToColumns DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
                                                                                Other:=True, OtherChar:=";", TrailingMinusNumbers:=True
            For r = 1 To lastRow
                If .Range("A" & r).Value <> "" Then
                    lastCol = .Cells(r, Columns.count).End(xlToLeft).Column
                    For n = 1 To lastCol
                        kq(count + n, 1) = .Cells(r, n).Value
                    Next n
                    count = count + lastCol
                End If
            Next r
            sh.Range("A1").Resize(count).Value = kq
            wb.Close True
        End With
    Next k
 
'    Application.Calculation = xlCalculationAutomatic
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.AskToUpdateLinks = True
    MsgBox "Done"
End Sub
Dạ e xin cảm ơn anh nhiều
Bài đã được tự động gộp:

Dạ em đã nhận được sự hổ trợ của a "batman1" và đã chạy thành công rồi ạ. Em xin cảm ơn các anh chị trong GPE nhiều. Lần đầu tiên gia nhập nhóm nên em vẫn chưa hiểu gì nhiều về nhóm nên có gì sai sót mong các anh chị bỏ qua giúp em nhé. Lần nữa em xin cảm ơn các anh chị nhiều.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom