Các bác làm ơn cho em hỏi:
Em co 1file excel trong đó có 5 sheet với tên 1,2,3,4,5 trong mỗi sheet có một cột dữ liệu text
và 1 sheet tổng, bây giờ em muốn gộp mỗi cột trong 5 sheet đó vào một sheet tổng ở một cột thì làm thế nào ạ(em có up file ví dụ) ?em cảm ơn nhiều?
Bạn dùng ADO để gộp nhé:
[GPECODE=sql]Sub GopSheet_HLMT()
Dim cn As Object, rst As Object, cat As Object, tbl As Object, str$, str1 As String
Set cn = CreateObject("ADODB.Connection")
Set cat = CreateObject("ADOX.Catalog")
Set tbl = CreateObject("ADOX.Table")
Set rst = CreateObject("ADODB.Recordset")
With cn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & _
";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";"
.Open
End With
cat.ActiveConnection = cn
For Each tbl In cat.Tables
If Right(Replace(tbl.Name, "'", ""), 1) = "$" And Left(tbl.Name, 4) <> "Tong" Then
str = str & " union all SELECT F1," & tbl.Name & " from [" & Replace(Replace(tbl.Name, "$", ""), "'", "") & "$] "
str1 = Right(str, Len(str) - 10)
End If
Next
With rst
.ActiveConnection = cn
.Open str1
End With
With Sheets("Tong")
.[A:B].ClearContents
.[A1].CopyFromRecordset rst
End With
rst.Close: Set rst = Nothing
cn.Close: Set cn = Nothing
Set cat = Nothing: Set tbl = Nothing
End Sub
[/GPECODE]