Copy dữ liệu từ file đang đóng (3 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

BuiQuangThuan

❆❆❆❆❆❆❆❆❆❆❆❆
Tham gia
17/12/10
Bài viết
2,739
Được thích
3,308
Giới tính
Nam
Hiện tại em em có 2 file cấu trúc dữ liệu giống nhau nhưng không nằm trên 1 foder. Em muốn copy toàn bộ dữ liệu của file "File du lieu" sang file " TONGHOP". Cũng tìm hiểu trên diễn đàn nhưng khi làm lại không ra kết quả được. Chính vì vậy nhờ các thầy cô kiểm tra giúp module trong file TONGHOP xem em đang sai chỗ nào? Hoặc nhờ thầy cô xử lí giúp ạ.
 

File đính kèm

Thử tham khảo:

 
Thử tham khảo:

có cách nào xử lý được không thầy cô. tại em sử dụng máy công ty. bị quản lý used. không tiện cài vào máy đươc. 1 điều nữa là khi muốn sang 1 máy khác cũng phải cài cái đó đúng không ạ
 
có cách nào xử lý được không thầy cô. tại em sử dụng máy công ty. bị quản lý used. không tiện cài vào máy đươc. 1 điều nữa là khi muốn sang 1 máy khác cũng phải cài cái đó đúng không ạ
Tạm thời tôi chỉ sửa code theo yêu cầu bài 1 của bạn như sau:

Mã:
Sub TongHop()
    Dim cnn As Object, lsSQL As String, lrs As Object ', Fname
    Dim Fso As Object, Link As String ', shNameNguon, i As Long
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set cnn = CreateObject("ADODB.Connection")
    Set lrs = CreateObject("ADODB.Recordset")
    'shNameNguon = Array("aaa")
    Application.ScreenUpdating = False

    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Filters.Add "Microsoft Excel Files", "*.xls; *.xlsx; *.xlsb; *.xlsm", 1
        If .Show = -1 Then
            Link = .InitialFileName
        Else
            MsgBox "Ban da khong chon tong hop", vbInformation, "Thông Báo"
            Exit Sub
        End If
        
        'For Each Fname In .SelectedItems
          
            With cnn
                If Val(Application.Version) < 12 Then
                    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
                                      & "Data Source=" & Fname & ";Extended Properties=""Excel 8.0;HDR=No"";"
                Else
           '    Fname = .SelectedItems
                    .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" _
                                      & "Data Source=" & Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1) & ";Extended Properties=""Excel 12.0;HDR=No"";"
                End If
                .Open
            
            'For i = 0 To UBound(shNameNguon)
          
                lsSQL = "SELECT * FROM [aaa$A2:AC65536]"
                lrs.Open lsSQL, cnn, 3, 1
                Sheets("aaa").Range("A2:AC65536").ClearContents
                Sheets("aaa").Range("A2").CopyFromRecordset lrs
                lrs.Close
            'Next
            End With
        'Next
    End With
 
    Application.ScreenUpdating = True
    cnn.Close
    Set lrs = Nothing
    Set cnn = Nothing
End Sub
 
Tạm thời tôi chỉ sửa code theo yêu cầu bài 1 của bạn như sau:

Mã:
Sub TongHop()
    Dim cnn As Object, lsSQL As String, lrs As Object ', Fname
    Dim Fso As Object, Link As String ', shNameNguon, i As Long
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set cnn = CreateObject("ADODB.Connection")
    Set lrs = CreateObject("ADODB.Recordset")
    'shNameNguon = Array("aaa")
    Application.ScreenUpdating = False

    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Filters.Add "Microsoft Excel Files", "*.xls; *.xlsx; *.xlsb; *.xlsm", 1
        If .Show = -1 Then
            Link = .InitialFileName
        Else
            MsgBox "Ban da khong chon tong hop", vbInformation, "Thông Báo"
            Exit Sub
        End If
       
        'For Each Fname In .SelectedItems
         
            With cnn
                If Val(Application.Version) < 12 Then
                    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
                                      & "Data Source=" & Fname & ";Extended Properties=""Excel 8.0;HDR=No"";"
                Else
           '    Fname = .SelectedItems
                    .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" _
                                      & "Data Source=" & Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1) & ";Extended Properties=""Excel 12.0;HDR=No"";"
                End If
                .Open
           
            'For i = 0 To UBound(shNameNguon)
         
                lsSQL = "SELECT * FROM [aaa$A2:AC65536]"
                lrs.Open lsSQL, cnn, 3, 1
                Sheets("aaa").Range("A2:AC65536").ClearContents
                Sheets("aaa").Range("A2").CopyFromRecordset lrs
                lrs.Close
            'Next
            End With
        'Next
    End With

    Application.ScreenUpdating = True
    cnn.Close
    Set lrs = Nothing
    Set cnn = Nothing
End Sub
con cám ơn chú ạ
 
Mình có nhiều file như vậy thì làm sao để click chọn file khác thì nó sẽ chép tiếp vào dòng cuối cùng bạn ơi ?
Mong bạn giúp mình với, xin cảm ơn nhiều !

Tạm thời tôi chỉ sửa code theo yêu cầu bài 1 của bạn như sau:

Mã:
Sub TongHop()
    Dim cnn As Object, lsSQL As String, lrs As Object ', Fname
    Dim Fso As Object, Link As String ', shNameNguon, i As Long
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set cnn = CreateObject("ADODB.Connection")
    Set lrs = CreateObject("ADODB.Recordset")
    'shNameNguon = Array("aaa")
    Application.ScreenUpdating = False

    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Filters.Add "Microsoft Excel Files", "*.xls; *.xlsx; *.xlsb; *.xlsm", 1
        If .Show = -1 Then
            Link = .InitialFileName
        Else
            MsgBox "Ban da khong chon tong hop", vbInformation, "Thông Báo"
            Exit Sub
        End If
      
        'For Each Fname In .SelectedItems
        
            With cnn
                If Val(Application.Version) < 12 Then
                    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
                                      & "Data Source=" & Fname & ";Extended Properties=""Excel 8.0;HDR=No"";"
                Else
           '    Fname = .SelectedItems
                    .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" _
                                      & "Data Source=" & Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1) & ";Extended Properties=""Excel 12.0;HDR=No"";"
                End If
                .Open
          
            'For i = 0 To UBound(shNameNguon)
        
                lsSQL = "SELECT * FROM [aaa$A2:AC65536]"
                lrs.Open lsSQL, cnn, 3, 1
                Sheets("aaa").Range("A2:AC65536").ClearContents
                Sheets("aaa").Range("A2").CopyFromRecordset lrs
                lrs.Close
            'Next
            End With
        'Next
    End With

    Application.ScreenUpdating = True
    cnn.Close
    Set lrs = Nothing
    Set cnn = Nothing
End Sub
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom