Mình chỉ copy điểm sang thôi còn Họ và tên không biết đâu nha![]()

Mình chỉ copy điểm sang thôi còn Họ và tên không biết đâu nha![]()
Bạn ơi, giúp mình vớiMình chỉ copy điểm sang thôi còn Họ và tên không biết đâu nha![]()
Cái này mình không biết giải thicha làm sao. Thôi cứ tạm như vầyBạn ơi, giúp mình với
cám ơn bạn nhưng mình muốn hỏi 1 vấn đề nữa, giả sử như 1 bảng 1 dòng ko có dữ liệu ví dụ như bảng toán tên của 1 ai đó ko có điểm thì có thể bỏ qua ko? tức là khi copy nếu dòng nào trống thì để trống rồi copy tiếp dòng có dữ liệu... nếu bạn biết giúp mình với, còn ko dc thì đành chịu dù sao cám ơn bạn rất nhiềuCái này mình không biết giải thicha làm sao. Thôi cứ tạm như vầy
strFileName là tên đường dẫn của fie
Tmp là lấy tên môn học ( Do mình chưa biết làm nên có sử dụng hàm tách của các tiền bối trên GPE, hàm Substitute, hàm InStrRev)
Col xác định cột chèn dữ liệu (sử dụng hàm Match xác định số cột tương ứng với tên môn học)
Bạn mở Code bấm F8 cho duyệt qua từng dòng lệnh thì sẽ hiểu thôi

Bạn kiểm tra file xem, đúng ý chưa nhécám ơn bạn nhưng mình muốn hỏi 1 vấn đề nữa, giả sử như 1 bảng 1 dòng ko có dữ liệu ví dụ như bảng toán tên của 1 ai đó ko có điểm thì có thể bỏ qua ko? tức là khi copy nếu dòng nào trống thì để trống rồi copy tiếp dòng có dữ liệu... nếu bạn biết giúp mình với, còn ko dc thì đành chịu dù sao cám ơn bạn rất nhiều
file nào đâu bạn??Bạn kiểm tra file xem, đúng ý chưa nhé




fat170294@gmail.comLàm cho bạn hết rồi mà không đẩy lên được.
Bạn gửi mail qua đây. T gửi cho
cám ơn bạn nhưng có vấn đề giả sử như 1 bảng 1 dòng ko có dữ liệu ví dụ như bảng toán không có tên của 1 ai đó thì có thể bỏ qua ko? tức là khi copy nếu dòng nào trống thì để trống rồi copy tiếp dòng có dữ liệu giống như dùng vlookup để dựa vào tên lấy điểm nều giúp đc giúp mình với không thì đành chịu...cám ơn bạn rất nhiềuChào kimanh17, Bạn xem file đính kèm nhé!
Mình tải lên không được. Bạn đưa mail mình gửi qua cho
Bạn cứ nêu ví dụ vào file, đảm bảo có câu trả lời.cám ơn bạn nhưng có vấn đề giả sử như 1 bảng 1 dòng ko có dữ liệu ví dụ như bảng toán không có tên của 1 ai đó thì có thể bỏ qua ko? tức là khi copy nếu dòng nào trống thì để trống rồi copy tiếp dòng có dữ liệu giống như dùng vlookup để dựa vào tên lấy điểm nều giúp đc giúp mình với không thì đành chịu...cám ơn bạn rất nhiều
Cám ơn bạn, file mình đây ý của mình muốn hỏi là nếu như ở một số file ko có tên như file thống kê vậy có cách nào dựa vào tên ở file thống kê như dùng hàm vlookup để lấy dữ liệu qua đc ko ạ??Bạn cứ nêu ví dụ vào file, đảm bảo có câu trả lời. Bạn lưu ý: Nếu trùng họ tên thì xác định như nào để ghi kết quả vào bảng thống kê?
Vậy thì cái này làm như kiểu cập nhật dữ liệu chứ không phải là Copy dữ liệuCám ơn bạn, file mình đây ý của mình muốn hỏi là nếu như ở một số file ko có tên như file thống kê vậy có cách nào dựa vào tên ở file thống kê như dùng hàm vlookup để lấy dữ liệu qua đc ko ạ??
Cám ơn bạn, file mình đây ý của mình muốn hỏi là nếu như ở một số file ko có tên như file thống kê vậy có cách nào dựa vào tên ở file thống kê như dùng hàm vlookup để lấy dữ liệu qua đc ko ạ??
Bạn xem file đính kèm nhé!
Cả họ và tên còn có trường hợp TRÙNG!!! Chỉ theo tên thôi là tèo rồi còn đâu.Xin lỗi bạn cho mình hỏi thêm vấn đề nữa là mình chỉ cần dựa theo tên thôi, ko cần cả họ và tên, mình đã sửa những chỗ này nhưng ko đúng bạn có thể chỉ vị trí nào dc ko ạ?
Cả họ và tên còn có trường hợp TRÙNG!!! Chỉ theo tên thôi là tèo rồi còn đâu.
p/s: Cái này người ta phải tạo Mã cho mỗi học sinh, Mã đó là duy nhất.
Thêm mã thì:Vậy nếu thêm mã thì sẽ phải sửa lại code ở vị trí nào ạ?
Ví dụ như Mã là HS001 vậy phải sửa thế nào bạn? mình mới tìm hiểu nên ko biết gì cả, mong giúp đỡ ạThêm mã thì: - Việc đầu tiên tạo cái mã đó đã, gồm bao nhiêu ký tự (chữ / số)? - Tiếp đến, gán mã đó ứng với mỗi học sinh ở tất cả các bảng dữ liệu, đặt tại cột trước cột [Họ và tên đệm] - Xong xuôi mới tính tới code. Cái này thì đơn giản vì đã cột [Mã] để tham chiếu. Cứ lấy mã so với nhau, trùng thì lấy dữ liệu tương ứng. Nhàn hơn so với việc so sánh họ và tên.
Bạn làm xong hẳn bước 2 đi đã:Ví dụ như Mã là HS001 vậy phải sửa thế nào bạn? mình mới tìm hiểu nên ko biết gì cả, mong giúp đỡ ạ
Còn ở các bảng tổng hợp điểm nữa.- Tiếp đến, gán mã đó ứng với mỗi học sinh ở tất cả các bảng dữ liệu, đặt tại cột trước cột [Họ và tên đệm]
Bạn làm xong hẳn bước 2 đi đã:
Còn ở các bảng tổng hợp điểm nữa.
Bạn thử đoạn sau:Mình sửa rồi đây bạn!!
Sub TkDiem()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Ipath As String, iMon() As Variant, Mon(), TB(), MA(), tmp()
Dim i As Integer, k As Byte, er As Long, lr As Long, r As Long, ir As Long
er = Sheet1.Range("C65000").End(xlUp).Row
MA = Sheet1.Range("B5:B" & er).Value
Ipath = GetFolder(""): If Ipath = "" Then Exit Sub
iMon = GetFileList(Ipath)
Mon = Sheet1.Range("E4:L4").Value
ReDim TB(1 To UBound(MA, 1), 1 To UBound(Mon, 2))
For i = 1 To UBound(iMon)
For k = 1 To UBound(Mon, 2)
If Replace(iMon(i), ".xlsx", "") Like "*" & Mon(1, k) Then
Workbooks.Open Filename:=Ipath & "\" & iMon(i), ReadOnly:=True
With ActiveWorkbook.Sheets("Sheet1")
lr = .Range("C65000").End(xlUp).Row
tmp = .Range("A3:R" & lr).Value
For r = 1 To UBound(TB, 1)
For ir = 1 To UBound(tmp, 1)
If MA(r, 1) = tmp(ir, 1) Then
TB(r, k) = tmp(ir, UBound(tmp, 2)): Exit For
End If
Next ir
Next r
End With
Workbooks(iMon(i)).Close
End If
Next k
Next i
Sheet1.Range("E5").Resize(UBound(TB, 1), UBound(TB, 2)).ClearContents
Sheet1.Range("E5").Resize(UBound(TB, 1), UBound(TB, 2)).NumberFormat = "0.0"
Sheet1.Range("E5").Resize(UBound(TB, 1), UBound(TB, 2)).Value = TB
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Bạn thử đoạn sau:
Mã:Sub TkDiem() Application.ScreenUpdating = False Application.DisplayAlerts = False Dim Ipath As String, iMon() As Variant, Mon(), TB(), MA(), tmp() Dim i As Integer, k As Byte, er As Long, lr As Long, r As Long, ir As Long er = Sheet1.Range("C65000").End(xlUp).Row MA = Sheet1.Range("B5:B" & er).Value Ipath = GetFolder(""): If Ipath = "" Then Exit Sub iMon = GetFileList(Ipath) Mon = Sheet1.Range("E4:L4").Value ReDim TB(1 To UBound(MA, 1), 1 To UBound(Mon, 2)) For i = 1 To UBound(iMon) For k = 1 To UBound(Mon, 2) If Replace(iMon(i), ".xlsx", "") Like "*" & Mon(1, k) Then Workbooks.Open Filename:=Ipath & "\" & iMon(i), ReadOnly:=True With ActiveWorkbook.Sheets("Sheet1") lr = .Range("C65000").End(xlUp).Row tmp = .Range("A3:R" & lr).Value For r = 1 To UBound(TB, 1) For ir = 1 To UBound(tmp, 1) If MA(r, 1) = tmp(ir, 1) Then TB(r, k) = tmp(ir, UBound(tmp, 2)): Exit For End If Next ir Next r End With Workbooks(iMon(i)).Close End If Next k Next i Sheet1.Range("E5").Resize(UBound(TB, 1), UBound(TB, 2)).ClearContents Sheet1.Range("E5").Resize(UBound(TB, 1), UBound(TB, 2)).NumberFormat = "0.0" Sheet1.Range("E5").Resize(UBound(TB, 1), UBound(TB, 2)).Value = TB Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Bạn thử đoạn sau:
Mã:Sub TkDiem() Application.ScreenUpdating = False Application.DisplayAlerts = False Dim Ipath As String, iMon() As Variant, Mon(), TB(), MA(), tmp() Dim i As Integer, k As Byte, er As Long, lr As Long, r As Long, ir As Long er = Sheet1.Range("C65000").End(xlUp).Row MA = Sheet1.Range("B5:B" & er).Value Ipath = GetFolder(""): If Ipath = "" Then Exit Sub iMon = GetFileList(Ipath) Mon = Sheet1.Range("E4:L4").Value ReDim TB(1 To UBound(MA, 1), 1 To UBound(Mon, 2)) For i = 1 To UBound(iMon) For k = 1 To UBound(Mon, 2) If Replace(iMon(i), ".xlsx", "") Like "*" & Mon(1, k) Then Workbooks.Open Filename:=Ipath & "\" & iMon(i), ReadOnly:=True With ActiveWorkbook.Sheets("Sheet1") lr = .Range("C65000").End(xlUp).Row tmp = .Range("A3:R" & lr).Value For r = 1 To UBound(TB, 1) For ir = 1 To UBound(tmp, 1) If MA(r, 1) = tmp(ir, 1) Then TB(r, k) = tmp(ir, UBound(tmp, 2)): Exit For End If Next ir Next r End With Workbooks(iMon(i)).Close End If Next k Next i Sheet1.Range("E5").Resize(UBound(TB, 1), UBound(TB, 2)).ClearContents Sheet1.Range("E5").Resize(UBound(TB, 1), UBound(TB, 2)).NumberFormat = "0.0" Sheet1.Range("E5").Resize(UBound(TB, 1), UBound(TB, 2)).Value = TB Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Hình như nếu xóa tên đi thì code này ko chạy đc nữa bạn ơi....
Bạn ơi. Bạn từ từ diễn đạt có đầu có cuối để người khác hiểu mà xem giúp bạn.
Bạn xóa tên là xóa tên gì? Tên môn học? Tên học sinh?
Xóa thì xóa như nào? Xóa giá trị hay xóa cả dòng/ cột?
Cấu trúc dữ liệu sau khi xóa có thay đổi gì không so với trước khi xóa?
Thứ nữa, bạn có chạy đúng code căn cứ vào Mã để tham chiếu (bài #29)?
Ngoài ra, nếu được thì bạn gửi file sau khi xóa lên cho trực quan, dễ hiểu cái bạn vừa xóa là gì? Bớt phải giải thích nhiều.
Bạn phản hồi lại nhé.

Xóa đi thì lấy gì mà tổng hợp?xin lỗi do mình nói ko rõ ràng, ý mình là xóa dữ liệu trong cột họ va tên chỉ xóa dữ liệu thôi vị trí cột vẫn giữ nguyên chỉ dựa vào Mahs để chạy code lấy điểm thì ko đc!! Làm phiền bạn quá do lúc này mình đang lên bằng điện thoại nên ko gửi file lên đc nếu đc sáng mình sẽ gửi lên ạ![]()
er = Sheet1.Range("C65000").End(xlUp).Row
...
lr = .Range("C65000").End(xlUp).Row
er = Sheet1.Range("B65000").End(xlUp).Row
...
lr = .Range("A65000").End(xlUp).Row