import sheet từ 2 file khác nhau? (1 người xem)

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

duongvannam27

Thành viên hoạt động
Tham gia
11/12/12
Bài viết
164
Được thích
2
Trong bài thi excel văn phòng B của ĐH KHTN có câu sau:

68292869353541665448.png


Vậy làm sao để import từ sheet Bangdo trong file danhmuc vao trong sheet LoaiHang trong file dulieuthi đúng với yêu cầu ở trên ạ? Xin chân thành cám ơn!
 

File đính kèm

Cái này phải dùng lập trình ADO mới được (nhưng bạn đang pốt bài vào phần kiến thức chung), có 3 ý:

1. File DuLieuThi đang mở import sheet Bangdo của file DanhMuc đang đóng ?

2. File DanhMuc đang mở export sheet Bangdo sang sheet LoaiHang của file DuLieuThi đang đóng ?

3. Cả 2 file đều đang đóng, có 1 file trung gian thứ 3 làm công việc import ?

Ý 1 tôi có thể giúp bạn.. vì cũng học được từ một số thành viên trên GPE này. Còn nếu theo ý 2, 3 nhờ các thành viên khác giúp?
 
Lần chỉnh sửa cuối:
Upvote 0
Hoặc có cách đơn giản hơn là record marco lại quá trình copy dữ liệu
 
Upvote 0
Cái này phải dùng lập trình ADO mới được (nhưng bạn đang pốt bài vào phần kiến thức chung), có 3 ý:

1. File DuLieuThi đang mở import sheet Bangdo của file DanhMuc đang đóng ?

2. File DanhMuc đang mở export sheet Bangdo sang sheet LoaiHang của file DuLieuThi đang đóng ?

3. Cả 2 file đều đang đóng, có 1 file trung gian thứ 3 làm công việc import ?

Ý 1 tôi có thể giúp bạn.. vì cũng học được từ một số thành viên trên GPE này. Còn nếu theo ý 2, 3 nhờ các thành viên khác giúp?

dạ vâng em nghĩ là ý 1 đấy ạ. Em học B mà tại giai nên cũng ko rành nhưng ý 1 e nghĩ là tuyệt!
 
Upvote 0
Nếu vậy thì đây, code của thầyNDU và vodoi2x tại Topic này: http://www.giaiphapexcel.com/forum/showthread.php?90458-Định-dạng-ngày-tháng-năm/page3
Code ADO làm thủ tục Import
[GPECODE=vb]
Function GetData(ByVal FileName As String, ByVal SheetName As String, ByVal RangeAddress As String, _
ByVal HasTitle As Boolean, ByVal UseTitle As Boolean)

Dim cnn As Object, rsData As Object
Dim tmpArr, Arr
Dim szConn As String, szSQL As String, tmp As String
Dim lR As Long, lC As Long, lVersn As Long
On Error GoTo ErrHandler
lVersn = Val(Application.Version)
Set cnn = CreateObject("ADODB.Connection")
Set rsData = CreateObject("ADODB.Recordset")

If lVersn < 12 Then
szConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileName & ";" & _
"Extended Properties=""Excel 8.0;HDR=" & IIf(HasTitle, "Yes", "No") & ";IMEX=1"";"
Else
szConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FileName & ";" & _
"Extended Properties=""Excel 12.0;HDR=" & IIf(HasTitle, "Yes", "No") & ";IMEX=1"";"
End If
If SheetName = "" Then
Dim Dbs As Object, db As Object
Set Dbs = CreateObject("DAO.DBEngine." & IIf(lVersn < 12, "36", "120"))
Set db = Dbs.OpenDatabase(FileName, False, False, "Excel 8.0;")
tmp = db.TableDefs(0).Name
tmp = Replace(tmp, "''", "'")
SheetName = tmp
db.Close
Set Dbs = Nothing: Set db = Nothing
Else
SheetName = SheetName & "$"
End If
cnn.Open szConn
szSQL = "SELECT * FROM [" & SheetName & RangeAddress & "];"
rsData.Open szSQL, cnn, 1, 1
tmpArr = rsData.GetRows
ReDim Arr(UBound(tmpArr, 2) - UseTitle, UBound(tmpArr, 1))
If UseTitle Then
For lC = LBound(tmpArr, 1) To UBound(tmpArr, 1)
Arr(0, lC) = rsData.Fields(lC).Name
Next
End If
rsData.Close: cnn.Close
For lR = LBound(tmpArr, 2) To UBound(tmpArr, 2)
For lC = LBound(tmpArr, 1) To UBound(tmpArr, 1)
Arr(lR - UseTitle, lC) = tmpArr(lC, lR)
Next
Next
GetData = Arr
Set rsData = Nothing: Set cnn = Nothing
Exit Function
ErrHandler:
MsgBox Err.Description
Set rsData = Nothing: Set cnn = Nothing
End Function
[/GPECODE]

Code để lấy dữ liệu
[GPECODE=vb]
Sub Update()
Dim FileName As String, SheetName As String, RangeAddress As String
Dim Arr
FileName = ThisWorkbook.Path & "\DanhMuc.xlsx"
SheetName = "BangDo"
Arr = GetData(FileName, SheetName, RangeAddress, True, True)
If IsArray(Arr) Then
ThisWorkbook.Sheets("LoaiHang").Range("A1").Resize(UBound(Arr, 1) + 1, _
UBound(Arr, 2) + 1).Value = Arr
End If
End Sub

[/GPECODE]

Bạn download file DuLieuThi.xlsm này vào cùng folder với file DanhMuc
Mở file DuLieuThi --> click nút Import --> sẽ ra kết quả
Cái này tôi cũng chỉ biết LÁI XE (nên không thể giải thích vì sao), nếu trình độ B chắc chắn chưa thể đến mức cao siêu thế này.
P/S: tôi sẽ rời đề tài này sang BOX lập trình...
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Nếu vậy thì đây, code của thầyNDU và vodoi2x tại Topic này: http://www.giaiphapexcel.com/forum/showthread.php?90458-Định-dạng-ngày-tháng-năm/page3
Code ADO làm thủ tục Import
[GPECODE=vb]


Bạn download file DuLieuThi.xlsm này vào cùng folder với file DanhMuc
Mở file DuLieuThi --> click nút Import --> sẽ ra kết quả
Cái này tôi cũng chỉ biết LÁI XE (nên không thể giải thích vì sao), nếu trình độ B chắc chắn chưa thể đến mức cao siêu thế này.
P/S: tôi sẽ rời đề tài này sang BOX lập trình...
Dã man quá!
Có cần phải dùng cây đao to thế không? Tính cho người ta sợ VBA luôn hả?
Người ta mới làm quen với code thì phải dụ từ từ cho dính vào VBA rồi cùng ghiền cho đông vui chút
 
Lần chỉnh sửa cuối:
Upvote 0
dạ vâng em nghĩ là ý 1 đấy ạ. Em học B mà tại giai nên cũng ko rành nhưng ý 1 e nghĩ là tuyệt!
Khi nào thấy code bài số 5 thấy ớn lạnh quá thì thử code này nha. (Mình nhìn còn nổi gai óc nè)
PHP:
Sub LayDuLieu()
Dim Crsheet As Worksheet
Set Crsheet = Sheets("LoaiHang")
With Workbooks.Open(ThisWorkbook.Path & "\DanhMuc.xlsx")
   With .Sheets("BangDo")
      .UsedRange.Copy Crsheet.[A1]
   End With
   .Close False
End With
End Sub

Yêu cầu: 2 File nằm chung 1 thư mục. File DanhMuc đang đóng
 
Upvote 0
Dã man quá!
Có cần phải dùng cây đao to thế không? Tính cho người ta sợ VBA luôn hả?
Người ta mới làm quen với code thì phải dụ từ từ cho dính vào VBA rồi cùng ghiền cho đông vui chút
Dạ.. báo cáo với a Hải là tại vì thầy NDU sắm cho quả XE máy khỏe, gầm cao, phân phối lớn, chạy mọi địa hình, phê quá nên phải CHẠY nhiều cho quen ạh..
Còn code của a luôn luôn ngắn gọn.. rất cơ bản.. người dùng dễ chỉnh sửa để phù hợp với CSDL của mình
 
Upvote 0
Dạ.. báo cáo với a Hải là tại vì thầy NDU sắm cho quả XE máy khỏe, gầm cao, phân phối lớn, chạy mọi địa hình, phê quá nên phải CHẠY nhiều cho quen ạh..
Còn code của a luôn luôn ngắn gọn.. rất cơ bản.. người dùng dễ chỉnh sửa để phù hợp với CSDL của mình
Đơn giản là tại vì mình hỏng có phức tạp... Mọi thứ đều chọn cái gì đơn giản trực tiếp
 
Upvote 0

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

Back
Top Bottom