Thuyanhanoi
Thành viên thường trực




- Tham gia
- 15/10/12
- Bài viết
- 304
- Được thích
- 154
- Nghề nghiệp
- Nhân viên
- Em có viết một macro lấy số báo danh cho danh sách như sau:
- Nếu không chọn số báo danh bắt đầu từ ô M14 thì danh sách Phiếu điểm có số báo danh được lấy từ sheet DS_duoc_du_thi: Đó là mã HS như đã làm được trong code .
- Nếu nhập số báo danh bắt đầu cho ô M14 (Số báo danh có cả phần chữ và phần số ví dụ nhập số báo danh bắt đầu là P0001 các số báo danh khác có phần số tăng dần cho đến hết danh sách thì code của em không ăn nhời.
- Em rất mong được mọi người hướng dẫn giúp em!.
Mã:
Public Sub Phieu_diem()Dim I As Long, J As Long, K As Long, sArr(), dArr(), SBD As String
With Sheets("PHIEU_DIEM")
SBD = .[M14].Value
End With
With Sheets("DS_duoc_du_thi")
sArr = .Range(.[A12], .[A65000].End(xlUp)).Resize(, 11).Value
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To 6)
For I = 1 To UBound(sArr, 1)
If SBD <> "" Then
K = K + 1
SBD = SBD + 1
dArr(K, 1) = K
dArr(K, 2) = "P" & SDB
For J = 4 To 6
dArr(K, J) = sArr(I, J - 1)
Next J
Else
K = K + 1
dArr(K, 1) = K
dArr(K, 2) = sArr(I, 2)
For J = 4 To 6
dArr(K, J) = sArr(I, J - 1)
Next J
End If
Next I
With Sheets("PHIEU_DIEM")
.[A15:K100].ClearContents
.[A15:K100].Borders.LineStyle = xlNone
.[A15].Resize(K, 6).Value = dArr
.[A15].Resize(K, 11).Borders.LineStyle = xlContinuous
.[A15].Resize(K, 11).Borders(xlInsideHorizontal).Weight = xlHairline
.[D15].Resize(K, 2).Borders(xlInsideVertical).LineStyle = xlNone
End With
End Sub
- Nếu nhập số báo danh bắt đầu cho ô M14 (Số báo danh có cả phần chữ và phần số ví dụ nhập số báo danh bắt đầu là P0001 các số báo danh khác có phần số tăng dần cho đến hết danh sách thì code của em không ăn nhời.
- Em rất mong được mọi người hướng dẫn giúp em!.
File đính kèm
Lần chỉnh sửa cuối:
