luankhanh1987
Thành viên mới
![](/diendan/data/PhoToDanhHieu/gold.gif)
- Tham gia
- 13/7/18
- Bài viết
- 10
- Được thích
- 0
Sub CapNhatDL()
Dim Wb As String, Ws As Worksheet, Rws As Long
On Error GoTo EndSub
Wb = Application.GetOpenFilename("Excel files (*.xls*), *.xlsx", , "Open file", , False)
With Workbooks.Open(Wb)
For Each Ws In .Sheets
Rws = Ws.[B65000].End(xlUp).Row - 3 'So dong du lieu cua sheet Ws
If Rws > 0 Then
Ws.[B4:K4].Resize(Rws).Copy Sheet1.[C65000].End(xlUp).Offset(1) 'Copy du lieu qua file Data
Sheet1.[B65000].End(xlUp).Offset(1).Resize(Rws) = DateValue(Replace(Ws.Name, ".", "/")) 'Dien ngay
End If
Next
.Close False 'Dong file con
End With
Rws = Sheet1.[C65000].End(xlUp).Row - 3 'So dong du lieu trong file Data
If Rws > 0 Then
Sheet1.[A4].Resize(Rws) = [=ROW(1:10000)] 'Danh STT
Sheet1.[A4:L4].Resize(Rws).Borders.LineStyle = 1 'Ke khung
End If
EndSub:
End Sub
Điều gì sẽ xảy ra nếu ta lỡ tay bấm cập nhật DL lần 2, lần 3 nhỉ?Code như sau:
Mã:Sub CapNhatDL() Dim Wb As String, Ws As Worksheet, Rws As Long On Error GoTo EndSub Wb = Application.GetOpenFilename("Excel files (*.xls*), *.xlsx", , "Open file", , False) With Workbooks.Open(Wb) For Each Ws In .Sheets Rws = Ws.[B65000].End(xlUp).Row - 3 'So dong du lieu cua sheet Ws If Rws > 0 Then Ws.[B4:K4].Resize(Rws).Copy Sheet1.[C65000].End(xlUp).Offset(1) 'Copy du lieu qua file Data Sheet1.[B65000].End(xlUp).Offset(1).Resize(Rws) = DateValue(Replace(Ws.Name, ".", "/")) 'Dien ngay End If Next .Close False 'Dong file con End With Rws = Sheet1.[C65000].End(xlUp).Row - 3 'So dong du lieu trong file Data If Rws > 0 Then Sheet1.[A4].Resize(Rws) = [=ROW(1:10000)] 'Danh STT Sheet1.[A4:L4].Resize(Rws).Borders.LineStyle = 1 'Ke khung End If EndSub: End Sub
Thông thường khi mình viết code để tổng hợp dữ liệu từ sheet khác hoặc file khác thì thường có câu lệnh xóa dữ liệu hiện có trước khi cập nhật (tất nhiên còn tùy thuộc vào việc cập nhật thêm hay lấy mới hoàn toàn). Vụ này dễ ẹc ấy mà.Điều gì sẽ xảy ra nếu ta lỡ tay bấm cập nhật DL lần 2, lần 3 nhỉ?
anh nếu em copy hết dữ liệu sheet từ file BáoCaoKhotp1 sang báo cáo khotp T03.183 được kg anh mà em muốn cập nhật liên tục luôn,chứ mỗi lần cập nhật em kg có dữ liệu cũ báo anhCode như sau:
Mã:Sub CapNhatDL() Dim Wb As String, Ws As Worksheet, Rws As Long On Error GoTo EndSub Wb = Application.GetOpenFilename("Excel files (*.xls*), *.xlsx", , "Open file", , False) With Workbooks.Open(Wb) For Each Ws In .Sheets Rws = Ws.[B65000].End(xlUp).Row - 3 'So dong du lieu cua sheet Ws If Rws > 0 Then Ws.[B4:K4].Resize(Rws).Copy Sheet1.[C65000].End(xlUp).Offset(1) 'Copy du lieu qua file Data Sheet1.[B65000].End(xlUp).Offset(1).Resize(Rws) = DateValue(Replace(Ws.Name, ".", "/")) 'Dien ngay End If Next .Close False 'Dong file con End With Rws = Sheet1.[C65000].End(xlUp).Row - 3 'So dong du lieu trong file Data If Rws > 0 Then Sheet1.[A4].Resize(Rws) = [=ROW(1:10000)] 'Danh STT Sheet1.[A4:L4].Resize(Rws).Borders.LineStyle = 1 'Ke khung End If EndSub: End Sub