Chào Anh/Chị ạ:
ĐOạn code em post kèm theo giúp em lấy giá trị của các file excel nguồn vào 01 sheets chỉ định, tuy nhiên do các báo cáo không đồng nhất về số dòng.
Như đoạn code sẽ lấy giá trị trong vùng Workbook(i).sheets("G034141").range("A18:L280"). Thực tế các Workbook(i) đều lấy giá trị đầu là "A18" tuy nhiên dòng lấy giá trị thay đổi không cố định "L280"
Em muốn nhờ Anh/Chị xem xét đoạn code có thể lấy giá trị tới dòng cuối - lastrow của mỗi file excel nguồn với ạ.
ĐOạn code em post kèm theo giúp em lấy giá trị của các file excel nguồn vào 01 sheets chỉ định, tuy nhiên do các báo cáo không đồng nhất về số dòng.
Như đoạn code sẽ lấy giá trị trong vùng Workbook(i).sheets("G034141").range("A18:L280"). Thực tế các Workbook(i) đều lấy giá trị đầu là "A18" tuy nhiên dòng lấy giá trị thay đổi không cố định "L280"
Em muốn nhờ Anh/Chị xem xét đoạn code có thể lấy giá trị tới dòng cuối - lastrow của mỗi file excel nguồn với ạ.
Mã:
Public Sub DATA()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim cn As Object, rs As Object, i As Byte, lr As Long, lrG03414 As Long, fso As Object
Set cn = CreateObject("adodb.connection")
Set fso = CreateObject("Scripting.FileSystemObject")
Sheets("G03414").Range("A1").CurrentRegion.Offset(1).ClearContents
With Application.FileDialog(msoFileDialogOpen)
.Filters.Clear
.Filters.Add "G03414", "*.xl*"
.InitialFileName = "G03414*"
.AllowMultiSelect = True
.Show
For i = 1 To .SelectedItems.Count
cn.Open ("provider=Microsoft.ACE.OLEDB.12.0;data source=" & .SelectedItems(i) & ";mode=Read;extended properties=""Excel 12.0;hdr=no"";")
lr = .SelectedItems.Range("A" & Rows.Count).End(3).Row - 1
Set rs = cn.Execute("select '" & fso.GetBaseName(.SelectedItems(i)) & "',f1,f2,f3,f4,f5,f6,f7,f8,f9,val(f10),val(f11),val(f12) from [G034141$A18:L280] ")
lr = Sheets("G03414").Range("A" & Rows.Count).End(3).Row
If Not rs.EOF Then Sheets("G03414").Range("A" & lr + 1).CopyFromRecordset rs
rs.Close
cn.Close
Next
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub