chidung2009
Thành viên hoạt động
- Tham gia
- 12/9/12
- Bài viết
- 123
- Được thích
- 8
Hiện mình muốn sửa Code VBA bên dưới để lấy dữ liệu từ file khác.
Rất mong anh chị giúp đỡ
Lý do: VBA lấy dữ liệu chạy từng sub 1 để lấy dữ liệu của từng Sheet, nên thỉnh thoảng phát sinh lỗi và nhìn rất rối
Rất mong anh chị giúp đỡ
Lý do: VBA lấy dữ liệu chạy từng sub 1 để lấy dữ liệu của từng Sheet, nên thỉnh thoảng phát sinh lỗi và nhìn rất rối
Mã:
Dim vFile, FileItem, aRes, Target As Range, Sh
Dim FileName As String, SheetName As String, RangeAddress As String
On Error Resume Next
vFile = Application.GetOpenFilename("Excel File, *.xls; *.xlsb; *.xlsm", , , , True)
If TypeName(vFile) = "Variant()" Then
SheetName = "HinhSu": RangeAddress = "B6:W9999"
For Each FileItem In vFile
aRes = Nothing
FileName = CStr(FileItem)
If UCase(FileName) <> UCase(ThisWorkbook.FullName) Then
aRes = GetData(FileName, SheetName, RangeAddress, False, False)
If IsArray(aRes) Then
Set Target = ThongKe_HS.Range("B" & iCuoi(ThongKe_HS, 4) + 1).End(xlUp).Offset(1)
Target.Resize(UBound(aRes, 1) + 1, UBound(aRes, 2) + 1).Value = aRes
End If
End If
Next
End If
'--------------------------------------------------------------------------------
If TypeName(vFile) = "Variant()" Then
SheetName = "DanSu": RangeAddress = "B6:W9999"
For Each FileItem In vFile
aRes = Nothing
FileName = CStr(FileItem)
If UCase(FileName) <> UCase(ThisWorkbook.FullName) Then
aRes = GetData(FileName, SheetName, RangeAddress, False, False)
If IsArray(aRes) Then
Set Target = ThongKe_DS.Range("B" & iCuoi(ThongKe_DS, 4) + 1).End(xlUp).Offset(1)
Target.Resize(UBound(aRes, 1) + 1, UBound(aRes, 2) + 1).Value = aRes
End If
End If
Next
End If
'--------------------------------------------------------------------------------
If TypeName(vFile) = "Variant()" Then
SheetName = "HonNhan": RangeAddress = "B6:W9999"
For Each FileItem In vFile
aRes = Nothing
FileName = CStr(FileItem)
If UCase(FileName) <> UCase(ThisWorkbook.FullName) Then
aRes = GetData(FileName, SheetName, RangeAddress, False, False)
If IsArray(aRes) Then
Set Target = ThongKe_HN.Range("B" & iCuoi(ThongKe_HN, 4) + 1).End(xlUp).Offset(1)
Target.Resize(UBound(aRes, 1) + 1, UBound(aRes, 2) + 1).Value = aRes
End If
End If
Next
End If
'--------------------------------------------------------------------------------
If TypeName(vFile) = "Variant()" Then
SheetName = "LaoDong": RangeAddress = "B6:W9999"
For Each FileItem In vFile
aRes = Nothing
FileName = CStr(FileItem)
If UCase(FileName) <> UCase(ThisWorkbook.FullName) Then
aRes = GetData(FileName, SheetName, RangeAddress, False, False)
If IsArray(aRes) Then
Set Target = ThongKe_LD.Range("B" & iCuoi(ThongKe_LD, 4) + 1).End(xlUp).Offset(1)
Target.Resize(UBound(aRes, 1) + 1, UBound(aRes, 2) + 1).Value = aRes
End If
End If
Next
End If
'--------------------------------------------------------------------------------
If TypeName(vFile) = "Variant()" Then
SheetName = "HoaGiai": RangeAddress = "B6:W9999"
For Each FileItem In vFile
aRes = Nothing
FileName = CStr(FileItem)
If UCase(FileName) <> UCase(ThisWorkbook.FullName) Then
aRes = GetData(FileName, SheetName, RangeAddress, False, False)
If IsArray(aRes) Then
Set Target = ThongKe_HG.Range("B" & iCuoi(ThongKe_HG, 4) + 1).End(xlUp).Offset(1)
Target.Resize(UBound(aRes, 1) + 1, UBound(aRes, 2) + 1).Value = aRes
End If
End If
Next
End If
'--------------------------------------------------------------------------------
If TypeName(vFile) = "Variant()" Then
SheetName = "THA_HS": RangeAddress = "B6:W9999"
For Each FileItem In vFile
aRes = Nothing
FileName = CStr(FileItem)
If UCase(FileName) <> UCase(ThisWorkbook.FullName) Then
aRes = GetData(FileName, SheetName, RangeAddress, False, False)
If IsArray(aRes) Then
Set Target = ThongKe_THA.Range("B" & iCuoi(ThongKe_THA, 4) + 1).End(xlUp).Offset(1)
Target.Resize(UBound(aRes, 1) + 1, UBound(aRes, 2) + 1).Value = aRes
End If
End If
Next
End If
End Sub