Nội dung của hàm này như sau ạ:
Lấy dữ liệu từ các ô (E4, I6, P6, G8, H23, D31, K36, P36, K37, P37, U35, J41, J45, P45, J45, AB70, H68, H69)
trong các file 1,2,3 .... (công thức chỉ dài ở đoạn này)
Sắp xếp vào các ô ở 1 file mới
A2, B2, C2, D2, E2 ...
A3, B3, C3, D3, E3 ...
....
Em có nhờ 1 người làm hộ công thức này, nhưng ko hiểu sao các ô K37, P37, và H68 H69 ko lấy đc dữ liệu để nhập vào. Nếu xóa P36, K36 đi thì K37, P37 lại nhập đc
Vậy nhờ anh chị kiểm tra giúp em ạ
Lấy dữ liệu từ các ô (E4, I6, P6, G8, H23, D31, K36, P36, K37, P37, U35, J41, J45, P45, J45, AB70, H68, H69)
trong các file 1,2,3 .... (công thức chỉ dài ở đoạn này)
Sắp xếp vào các ô ở 1 file mới
A2, B2, C2, D2, E2 ...
A3, B3, C3, D3, E3 ...
....
Em có nhờ 1 người làm hộ công thức này, nhưng ko hiểu sao các ô K37, P37, và H68 H69 ko lấy đc dữ liệu để nhập vào. Nếu xóa P36, K36 đi thì K37, P37 lại nhập đc
Vậy nhờ anh chị kiểm tra giúp em ạ
Sub test()
Dim FolderPath As String, FileName As String, strFileTarget As String
Dim wb As Excel.Workbook
Dim i As Integer, lastRow As Integer
Dim rngCopy As Range
FolderPath = Range("A1").Value & "\" 'Duong dan thu muc do tim
FileName = Dir(FolderPath & "*.xls*") 'Tim trong thu muc tat ca cac file *.xls*
strFileTarget = "IMEX - Hung.xlsm" 'Ten file macro chay
Set FSO = CreateObject("Scripting.FileSystemObject")
Application.ScreenUpdating = False
If FSO.FolderExists(FolderPath) Then
Do While FileName <> ""
If FileName <> strFileTarget Then
On Error Resume Next
Set wb = Workbooks.Open(FolderPath & FileName)
If Err.Number <> 0 Then: MsgBox ("Unable to open file " & FileName)
On Error GoTo 0
lastRow = Workbooks(strFileTarget).Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Row
Set E4 = Workbooks(FileName).Worksheets(1).Range("E4"): Set I6 = Workbooks(FileName).Worksheets(1).Range("I6")
Set P6 = Workbooks(FileName).Worksheets(1).Range("P6"): Set G8 = Workbooks(FileName).Worksheets(1).Range("G8")
Set H23 = Workbooks(FileName).Worksheets(1).Range("H23"): Set D31 = Workbooks(FileName).Worksheets(1).Range("D31")
Set K36 = Workbooks(FileName).Worksheets(1).Range("K36"): Set P36 = Workbooks(FileName).Worksheets(1).Range("P36")
Set K37 = Workbooks(FileName).Worksheets(1).Range("K37"): Set P37 = Workbooks(FileName).Worksheets(1).Range("P37")
Set U35 = Workbooks(FileName).Worksheets(1).Range("U35"): Set J41 = Workbooks(FileName).Worksheets(1).Range("J41")
Set J45 = Workbooks(FileName).Worksheets(1).Range("J45"): Set P45 = Workbooks(FileName).Worksheets(1).Range("P45")
Set J45 = Workbooks(FileName).Worksheets(1).Range("J45"): Set AB70 = Workbooks(FileName).Worksheets(1).Range("AB70")
Set H68 = Workbooks(FileName).Worksheets(1).Range("H68"): Set H69 = Workbooks(FileName).Worksheets(1).Range("H69")
Set rngCopy = Union(E4, I6, P6, G8, H23, D31, K36, P36, K37, P37, U35, J41, J45, P45, J45, AB70, H68, H69)
For i = 1 To rngCopy.Areas.Count: Workbooks(strFileTarget).Worksheets(1).Cells(lastRow + 1, i).Value = rngCopy.Areas(i).Value: Next
Application.Wait (Now + TimeValue("0:00:01"))
Workbooks(FileName).Close
End If
FileName = Dir
Loop
Else
MsgBox folder & "Specified Folder Not Found", vbInformation, "Not Found!"
End If
MsgBox ("Well Done!")
Application.ScreenUpdating = True
End Sub
Lần chỉnh sửa cuối: