Viết giúp em VBA up data vào file mẫu

Liên hệ QC

chungk54neu

Thành viên mới
Tham gia
3/6/19
Bài viết
45
Được thích
7
Em chào anh/chị diễn dàn, em đang có 1 vướng mắc nhờ anh/chị giải đáp giúp em, em có 1 file data và 1 file mẫu, em cần up thông tin (Tên NCC, Địa chỉ NCC, SĐT NCC) từ file data vào file mẫu (bôi vàng tương ứng ạ) và tách thành 1 file riêng biệt đã đầy đủ thông tin NCC ạ,
anh/chị giúp em với ạ, em cảm ơn ạ
 

File đính kèm

  • Data.xlsx
    10.3 KB · Đọc: 15
  • File mẫu.xlsx
    41.1 KB · Đọc: 16
Em chào anh/chị diễn dàn, em đang có 1 vướng mắc nhờ anh/chị giải đáp giúp em, em có 1 file data và 1 file mẫu, em cần up thông tin (Tên NCC, Địa chỉ NCC, SĐT NCC) từ file data vào file mẫu (bôi vàng tương ứng ạ) và tách thành 1 file riêng biệt đã đầy đủ thông tin NCC ạ,
anh/chị giúp em với ạ, em cảm ơn ạ
Có cần thiết phải để trên 2 file không? Sao không đưa về 1 file (1Sh là Mau, 1 Sh là DM NhaCungCap) sau đó dùng data validation cho ô D6/Sh Mau, các ô C7,C8 dùng hàm Vlookup để lấy kết quả.
 
Upvote 0
Upvote 0
Em chào anh/chị diễn dàn, em đang có 1 vướng mắc nhờ anh/chị giải đáp giúp em, em có 1 file data và 1 file mẫu, em cần up thông tin (Tên NCC, Địa chỉ NCC, SĐT NCC) từ file data vào file mẫu (bôi vàng tương ứng ạ) và tách thành 1 file riêng biệt đã đầy đủ thông tin NCC ạ,
anh/chị giúp em với ạ, em cảm ơn ạ
Tách ra đặt tên file như thế nào nhỉ bạn.Thử code.
Mã:
Sub tach()
       Application.ScreenUpdating = False
       Application.DisplayAlerts = False
       Dim i As Long, arr, link As String, cn As Object, sql As String, tenfile As String, wb As Workbook, tong
       Set cn = CreateObject("ADODB.Connection")
        Set tong = ActiveWorkbook.Sheets("sheet1")
        link = ThisWorkbook.Path & "\Data.xlsx"
        cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & link & ";Extended Properties=""Excel 12.0;HDR=No"";"
        sql = "Select * From [Sheet1$B3:D10000]  where f1 is not null"
        arr = ADO_ToArray(cn, sql)
        For i = 1 To  UBound(arr)
            With tong
                 .Range("D6").Value = arr(i, 1)
                 .Range("c7").Value = arr(i, 2)
                 .Range("c8").Value = arr(i, 3)
                 .Copy
                 Set wb = ActiveWorkbook
                 tenfile = ThisWorkbook.Path & "\" & i & ".xlsx"
                 wb.SaveAs tenfile
                 wb.Close
            End With
      Next i
      Set cn = Nothing
      Set tong = Nothing
      Set wb = Nothing
       Application.ScreenUpdating = True
       Application.DisplayAlerts = True
End Sub
Private Function ADO_ToArray(ByRef cn, ByVal sqlStr As String) As Variant
    Dim sArr, Res(), i As Long, j As Long
    sArr = cn.Execute(sqlStr).getrows
    ReDim Res(1 To UBound(sArr, 2) + 1, 1 To UBound(sArr, 1) + 1)
    For i = LBound(sArr, 2) To UBound(sArr, 2)
        For j = LBound(sArr, 1) To UBound(sArr, 1)
            Res(i + 1, j + 1) = sArr(j, i)
        Next j
    Next i
    ADO_ToArray = Res
End Function
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom