tập làm code đánh số thứ tự (2 người xem)

  • Thread starter Thread starter quykh
  • Ngày gửi Ngày gửi

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

quykh

Chim non
Tham gia
7/9/11
Bài viết
381
Được thích
46
Giới tính
Nữ
Nghề nghiệp
Công Nhân
Em có sưu tầm một bài trên DD và chèn một đoạn code đánh STT tự tự động mà sao không được nhờ các AC giúp đỡ!!!!
Mã:
If Sheets("CTNH").Range.[E4:E65536] <> "" Then
    Sheets("CTNH").[D4] , [D65536].End(3).Offset(, -1) = [row(A:A)]
 
Lần chỉnh sửa cuối:
Em có sưu tầm một bài trên DD và chèn một đoạn code đánh STT tự tự động mà sao không được nhờ các AC giúp đỡ!!!!
Mã:
If Sheets("CTNH").Range.[E4:E65536] <> "" Then
    Sheets("CTNH").[D4] , [D65536].End(3).Offset(, -1) = [row(A:A)]
Bạn thử đoạn này:
Mã:
If [E4] <> "" Then Range([E4], [E65536].End(3)).Offset(, -1) = [row(a:a)]
tb. Nếu muốn chuẩn hơn, bạn nên thêm cặp with sheets("CTNH")... end with vào và thêm dấu . trước các tham chiếu.
 
Lần chỉnh sửa cuối:
Upvote 0
Sao vẫn không được vậy Anh Cá ngừ F1, em muốn có số thứ tự tự động ở cột D của Sheets"CTNH", mong Anh và mọi người giúp!!!!
Các AC xem code sai chổ nào:
Mã:
Sub NH()Dim sArr(), dArr(), I As Long, J As Long, K As Long
Dim NGAY As Date, SP As String, NGN As String, TENH As String, SL As String, DVT As String
With Sheets("NH")
    NGAY = .[F5].Value: SP = .[F7].Value: NGN = .[F9].Value
    sArr = .[F12:H20].Value
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To 6)
For I = 1 To UBound(sArr, 1)
    If sArr(I, 1) <> Empty Then
        K = K + 1: dArr(K, 1) = NGAY
        dArr(K, 2) = SP: dArr(K, 3) = NGN
        For J = 1 To 3
            dArr(K, J + 3) = sArr(I, J)
        Next J
    End If
Next I
If K Then
    Sheets("CTNH").[E65536].End(3).Offset(1).Resize(K, 6) = dArr
    Sheets("NH").Range("F5,F7,F9,E12:H20").ClearContents
    Sheets("NH").[F5].Select
    MsgBox "Da Luu xong", 64, "GPE"
Else
    MsgBox "Khong co du lieu", 64, "GPE"
With Sheets("CTNH")
If .[E4] <> "" Then Range(.[E4], .[E65536].End(3)).Offset(, -1) = .[row(a:a)] [B][COLOR=#ff0000]<----em chèn chổ này[/COLOR][/B]
    End With
End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
bạn xem đoạn code này xem sao
Mã:
Sub NH()
Dim sArr(), dArr(), I As Long, J As Long, K As Long
Dim NGAY As Date, SP As String, NGN As String, TENH As String, SL As String, DVT As String
With Sheets("NH")
    NGAY = .[F5].Value: SP = .[F7].Value: NGN = .[F9].Value
    sArr = .[F12:H20].Value
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To 6)
For I = 1 To UBound(sArr, 1)
    If sArr(I, 1) <> Empty Then
        K = K + 1: dArr(K, 1) = NGAY
        dArr(K, 2) = SP: dArr(K, 3) = NGN
        For J = 1 To 3
            dArr(K, J + 3) = sArr(I, J)
        Next J
    End If
Next I
If K Then
    Sheets("CTNH").[E65536].End(3).Offset(1).Resize(K, 6) = dArr
    Sheets("NH").Range("F5,F7,F9,E12:H20").ClearContents
    Sheets("NH").[F5].Select
    MsgBox "Da Luu xong", 64, "GPE"
Else
    MsgBox "Khong co du lieu", 64, "GPE"
End If
With Sheets("CTNH")
If .[E4] <> "" Then Range(.[E4], .[E65536].End(3)).Offset(, -1) = .[row(a:a)] '<----em chèn ch? này
    End With
End Sub
 
Upvote 0
Lạ nhỉ, tôi thử vẫn chạy ầm ầm.
 
Upvote 0
Oh!!! Quả là "kỳ cục". Bài của Anh phihndhsp đã chạy STT, chỉ khác nhau chổ chèn thôi. Em chèn trên " End IF " còn Anh phihndhsp thì chèn dưới "End IF" thế mà khác liền. Cám Ơn Anh!!!
 
Upvote 0
Sao vẫn không được vậy Anh Cá ngừ F1, em muốn có số thứ tự tự động ở cột D của Sheets"CTNH", mong Anh và mọi người giúp!!!!
Các AC xem code sai chổ nào:
Mã:
Sub NH()Dim sArr(), dArr(), I As Long, J As Long, K As Long
Dim NGAY As Date, SP As String, NGN As String, TENH As String, SL As String, DVT As String
With Sheets("NH")
    NGAY = .[F5].Value: SP = .[F7].Value: NGN = .[F9].Value
    sArr = .[F12:H20].Value
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To 6)
For I = 1 To UBound(sArr, 1)
    If sArr(I, 1) <> Empty Then
        K = K + 1: dArr(K, 1) = NGAY
        dArr(K, 2) = SP: dArr(K, 3) = NGN
        For J = 1 To 3
            dArr(K, J + 3) = sArr(I, J)
        Next J
    End If
Next I
If K Then
    Sheets("CTNH").[E65536].End(3).Offset(1).Resize(K, 6) = dArr
    Sheets("NH").Range("F5,F7,F9,E12:H20").ClearContents
    Sheets("NH").[F5].Select
    MsgBox "Da Luu xong", 64, "GPE"
Else
    MsgBox "Khong co du lieu", 64, "GPE"
With Sheets("CTNH")
If .[E4] <> "" Then Range(.[E4], .[E65536].End(3)).Offset(, -1) = .[row(a:a)] [B][COLOR=#ff0000]<----em chèn chổ này[/COLOR][/B]
    End With
End If
End Sub
Sao không là thế này:
ReDim dArr(1 To UBound(sArr, 1), 1 To 7)
....
k=k+1
dArr(k,1)=k
dArr(k,2)= NGAY
For J = 1 To 3
dArr(K, J + 4) = sArr(I, J)
.....

Thường mình đánh stt như vậy. Đánh stt kiểu [row(a:a)] trong những trường hợp không dùng vòng lặp
 
Upvote 0

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

Back
Top Bottom