Chuyển dữ liệu file excel qua file excel khác (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

conghoangxd037

Thành viên chính thức
Tham gia
16/1/13
Bài viết
54
Được thích
2
Giúp em với, hiện tại em có 2 file excel gồm: excel1.xls và excel2.xls. Và em chỉ mở file excel2.xls còn file excel1.xls em không mở. Làm cách nào em copy dữ liệu file excel1.xls từ A1:A10 của sheet1 vào sheet1 của file excel2.xls. Mà thực hiện bằng code vba trên excel2.xls.
 
Giúp em với, hiện tại em có 2 file excel gồm: excel1.xls và excel2.xls. Và em chỉ mở file excel2.xls còn file excel1.xls em không mở. Làm cách nào em copy dữ liệu file excel1.xls từ A1:A10 của sheet1 vào sheet1 của file excel2.xls. Mà thực hiện bằng code vba trên excel2.xls.

Có thể áp dụng ado để lấy và chuyển dữ liệu cho file đang đóng
 
Upvote 0
Em chỉ biết DAO thôi còn ADO thì em chưa hiểu mấy.Anh có thể trích dẫn đoạn code về ADO và DAO cho em được không?
Chỉ cần paste dữ liệu qua file excel2.xls là được.Thank a
 
Upvote 0
Em chỉ biết DAO thôi còn ADO thì em chưa hiểu mấy.Anh có thể trích dẫn đoạn code về ADO và DAO cho em được không?
Chỉ cần paste dữ liệu qua file excel2.xls là được.Thank a
Muốn test được ít ra bạn cũng phải đưa 1 ít dữ liệu và file mẫu mới test được chứ.
 
Upvote 0
Đây nè anh. Em có 2 file: 1 file là excel1 chứa dữ liệu, 1 file là excel2 là thực hiện code vba copy dữ liệu mà ko mở file excel1. Thank a, anh ví dụ em về DAO và ADO luôn nhen anh để em học hỏi với.
http://www.mediafire.com/?gww0xejuqpbrcb8
 
Upvote 0
Đây nè anh. Em có 2 file: 1 file là excel1 chứa dữ liệu, 1 file là excel2 là thực hiện code vba copy dữ liệu mà ko mở file excel1. Thank a, anh ví dụ em về DAO và ADO luôn nhen anh để em học hỏi với.
http://www.mediafire.com/?gww0xejuqpbrcb8
Bạn dùng code như sau:

[GPECODE=sql]Sub LayDL_ADO()
Dim lsSQL As String, Cnn As Object, lrs As Object
Set Cnn = CreateObject("ADODB.Connection")
Set lrs = CreateObject("ADODB.Recordset")
With Cnn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.Path & "\Excel1.xls" & _
";Extended Properties=""Excel 8.0;HDR=No;"";"
.Open
End With
lsSQL = "SELECT * " & _
"FROM [Sheet1$A2:E10] "
lrs.Open lsSQL, Cnn, 3, 1
With Sheet1
.[A2:E10].ClearContents
.[A2].CopyFromRecordset lrs

End With
lrs.Close: Set lrs = Nothing
Cnn.Close: Set Cnn = Nothing

End Sub

[/GPECODE]
 

File đính kèm

Upvote 0
thank a, a có thể dùng code vba sử dụng kĩ thuật DAO được không a?
 
Upvote 0
Upvote 0
em làm DAO được rồi nhưng phần ADO có chỗ này em không hiểu về thuộc tính open này ở hàng cuối có số 3 và số 1 là sao a. Giải thích giùm em với a.
lrs.Open lsSQL, Cnn, 3, 1
 
Upvote 0
em làm DAO được rồi nhưng phần ADO có chỗ này em không hiểu về thuộc tính open này ở hàng cuối có số 3 và số 1 là sao a. Giải thích giùm em với a.
lrs.OpenlsSQL, Cnn, 3, 1
Bạn có thể xem Ở Đây để hiểu thêm về nó. Nhưng theo bài của bạn chỉ đơn thuần là lấy dữ liệu thì không có nó cũng được, chỉ cần ghi lrs.Open lsSQL, Cnn là đủ.
 
Upvote 0
Bạn cho mình hỏi với. Nếu Excel1 và Excel2 không cùng folder thì phải làm thế nào.
Cảm ơn rất nhiều.
 
Upvote 0
Bạn cho mình hỏi với. Nếu Excel1 và Excel2 không cùng folder thì phải làm thế nào.
Cảm ơn rất nhiều.
Thì thay đường dẫn đến file đó là được.

Mã:
 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                        "Data Source=" & [COLOR=#b22222][SIZE=4][B]ThisWorkbook.Path & [/B][/SIZE][/COLOR][COLOR=#b22222][SIZE=4][B]"\Excel1.xls"[/B][/SIZE][/COLOR] & _

                        ";Extended Properties=""Excel 8.0;HDR=No;"";"
 
Upvote 0
Nếu muốn chuyển nhiều sheet trong file 1 sang file 2 thì mình làm sao các anh chị ơi?
 
Upvote 0
Xem giúp mình với mình đã gửi 2 file rùi.

Ý của mình là khi nhấn nút lệnh ở sheet 11 của file 2 thì tự động chuyển dữ liệu 10 sheet của file 1 sang file 2. mong anh chị GPE giúp mình
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Ý của mình là khi nhấn nút lệnh ở sheet 11 của file 2 thì tự động chuyển dữ liệu 10 sheet của file 1 sang file 2. mong anh chị GPE giúp mình

Bạn tạm dùng code sau:

Mã:
Sub GetSheets()
Dim Wb As Workbook, Sh As Worksheet
Application.ScreenUpdating = False
xoa
Workbooks.Open ThisWorkbook.Path & "\file 1.xls"
Set Wb = ActiveWorkbook
For Each Sh In Wb.Sheets
    Sh.Copy After:=ThisWorkbook.Sheets(1)
Next
Wb.Close
Sheet11.Select
Application.ScreenUpdating = True

End Sub
Sub xoa()
Dim Sh As Worksheet
Application.DisplayAlerts = False
For Each Sh In ThisWorkbook.Sheets
    If UCase(Sh.CodeName) <> "SHEET11" Then Sh.Delete
Next
Application.DisplayAlerts = True
End Sub
 

File đính kèm

Upvote 0
Thì thay đường dẫn đến file đó là được.

Mã:
 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                        "Data Source=" & [COLOR=#b22222][SIZE=4][B]ThisWorkbook.Path & [/B][/SIZE][/COLOR][COLOR=#b22222][SIZE=4][B]"\Excel1.xls"[/B][/SIZE][/COLOR] & _

                        ";Extended Properties=""Excel 8.0;HDR=No;"";"
Cảm ơn Hai Lúa Miền Tấy rất nhiều. Cho mình hỏi thêm chút nữa nhé. Mình cần làm ngược lại là nhấn nút thì nó ghi toàn bộ dữ liệu trong sheet2 của excel2 vào sheet2 của excel1 (excel1 vẫn hoàn toàn đóng). Vậy phải code thế nào. Mình làm mãi không được.
 
Upvote 0
Cảm ơn Hai Lúa Miền Tấy rất nhiều. Cho mình hỏi thêm chút nữa nhé. Mình cần làm ngược lại là nhấn nút thì nó ghi toàn bộ dữ liệu trong sheet2 của excel2 vào sheet2 của excel1 (excel1 vẫn hoàn toàn đóng). Vậy phải code thế nào. Mình làm mãi không được.

Vậy dữ liệu của bạn ở sheet2 được sắp xếp như thế nào? Cho 1 ít dữ liệu mẫu xem coi có cùng cấu trúc với file cần nhận dữ liệu không nhé.
Hoặc bạn vào bài Bài tập về ADO căn bản. để tham khảo nhé.
 
Lần chỉnh sửa cuối:
Upvote 0
mình muốn cấu trúc của 2 sheet tại 2 file đó giống hệt nhau nhưng dữ liệu ở excel2 được ghi tại dòng kế tiếp trong excel1 sau mỗi lần kích nút ghi đó.
 
Upvote 0
Upvote 0
Nếu muốn hiển thị vị trí để lấy file 1 như lệnh Open thì làm sao anh.

Nếu muốn hiển thị vị trí để lấy file 1 như lệnh Open thì làm sao anh.
 
Upvote 0
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & ThisWorkbook.Path & "\Excel1.xls" & _ ";Extended Properties=""Excel 8.0;HDR=No;"";"ý mình hỏi là đường dẫn file 1 nằm bất kì chứ không tuyệt đối.
 
Upvote 0
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & ThisWorkbook.Path & "\Excel1.xls" & _ ";Extended Properties=""Excel 8.0;HDR=No;"";"ý mình hỏi là đường dẫn file 1 nằm bất kì chứ không tuyệt đối.

Thì mình đã trả lời bài #24 còn gì.

Mã:
Sub ChonFile()
strFile = Application.GetOpenFilename _
        (Title:="Vui long chon file", _
        FileFilter:="Excel Files *.xl* (*.xl*),")
    If strFile = False Then
        MsgBox "Khong co file nao duoc chon.", vbExclamation
        Exit Sub
    Else
        MsgBox strFile
    End If
End Sub
 
Upvote 0
Bạn dùng code như sau:

[GPECODE=sql]Sub LayDL_ADO()
Dim lsSQL As String, Cnn As Object, lrs As Object
Set Cnn = CreateObject("ADODB.Connection")
Set lrs = CreateObject("ADODB.Recordset")
With Cnn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.Path & "\Excel1.xls" & _
";Extended Properties=""Excel 8.0;HDR=No;"";"
.Open
End With
lsSQL = "SELECT * " & _
"FROM [Sheet1$A2:E10] "
lrs.Open lsSQL, Cnn, 3, 1
With Sheet1
.[A2:E10].ClearContents
.[A2].CopyFromRecordset lrs

End With
lrs.Close: Set lrs = Nothing
Cnn.Close: Set Cnn = Nothing

End Sub

[/GPECODE]
Chào Bạn. mình thấy code của bạn rất hay nhưng khi mình Rename Sheet1 thành tên (du lieu ) chẳng hạn thì nó báo lỗi Bạn có thể khắc phục lỗi này được không ... mình cũng đang rất cần code này
xin cảm ơn Bạn rất nhiều!
 
Upvote 0
chào bạn. Mình thấy code của bạn rất hay nhưng khi mình rename sheet1 thành tên (du lieu ) chẳng hạn thì nó báo lỗi bạn có thể khắc phục lỗi này được không ... Mình cũng đang rất cần code này
xin cảm ơn bạn rất nhiều!
mình tự làm được rồi rất hay... Cảm ơn bạn rất nhiều ... Code hay
 
Upvote 0
chào các anh chị! Đoạn code của anh hai lúa rất hay em muốn đưa vào áp dung cho file của em nhưng không hiểu sao code báo lỗi không thể chạy được. giúp em sửa lại với
code chạy đến đoạn .open thì báo lỗi
 

File đính kèm

  • ChuyenDuLieu.rar
    ChuyenDuLieu.rar
    18 KB · Đọc: 16
  • Chưa có tên.jpg
    Chưa có tên.jpg
    20.3 KB · Đọc: 9
Lần chỉnh sửa cuối:
Upvote 0
chào các anh chị! Đoạn code của anh hai lúa rất hay em muốn đưa vào áp dung cho file của em nhưng không hiểu sao code báo lỗi không thể chạy được. giúp em sửa lại với
code chạy đến đoạn .open thì báo lỗi

File nguon.xls không có sheet 'dich' mà chỉ có sheet1 chứa dữ liệu. Bạn chỉnh từ dich sanh Sheet1 là được.

Mã:
Sub LayDL_ADO()
Dim lsSQL As String, Cnn As Object, lrs As Object
Set Cnn = CreateObject("ADODB.Connection")
Set lrs = CreateObject("ADODB.Recordset")
With Cnn
    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                        "Data Source=" & ThisWorkbook.Path & "\nguon.xls" & _
                        ";Extended Properties=""Excel 8.0;HDR=No;"";"
    .Open
End With
    lsSQL = "SELECT * " & _
                  "FROM [[B][COLOR=#ff0000]Sheet1[/COLOR][/B]$A2:E10] "
    lrs.Open lsSQL, Cnn
With Sheet1
   .[A2:E10].ClearContents
   .[A2].CopyFromRecordset lrs
        
End With
lrs.Close: Set lrs = Nothing
Cnn.Close: Set Cnn = Nothing

End Sub
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom