Mong các anh chị cao tay giải thích đoạn code này dùm em (1 người xem)

Liên hệ QC

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

truckhoa2006

Thành viên hoạt động
Tham gia
3/10/07
Bài viết
155
Được thích
16
Em được 1 người bạn cho đoạn code . Mục địch như sau : khi ta nhập 1 số bất kỳ vào 1 ô của cột C5 thì tương ứng cột B5 sẽ cho ra thời gian vào đúng thời điểm nhập ở ô C5.
Em chân thành cám ơn các anh chị.
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)    On Error Resume Next
    Dim vitri As String
    Dim bien As String
    For i = 81 To Range("l1").Value + 81
        bien = Range("c" & i).Value
           If (bien = "") Then
               vitri = i
               Exit For
           End If
    Next i
    'Range("c" & i - 1).Value = "=IF(RC[-1]<>"""",IF(MONTH(RC[-1])=MONTH(R[-1]C[-1]),R[-1]C+1,1),"""")"
    t = Range("B" & vitri - 1).Value + Range("B" & vitri).Value
    If t > 0 Then
        Else
        If Range("C" & vitri - 1).Value > 0 Then
            If Range("C" & vitri - 1).Value = Range("C" & vitri - 2).Value Then
            Range("B" & vitri - 1).Value = Range("B" & vitri - 2).Value
            Else
            Range("B" & vitri - 1).Value = "=NOW()"
            Range("B" & vitri - 1).Copy
            Range("B" & vitri - 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Application.CutCopyMode = False
            End If
       'Range("a" & vitri).Select
        End If
    End If
    Dim l As Integer
    'Range("l2").Value = Range("d2").Value
    l = Round(Rnd * Range("l1").Value, 0)
    If Int(Range("l2").Value) > 42650 Then
    Range("L2").Value = Range("b" & l).Value
    Else
    'Range("m2").Value = "=vnd(m1)"
    Range("L2").Value = "=J2"
    'Exit Sub
    End If
End Sub
 
Em được 1 người bạn cho đoạn code . Mục địch như sau : khi ta nhập 1 số bất kỳ vào 1 ô của cột C5 thì tương ứng cột B5 sẽ cho ra thời gian vào đúng thời điểm nhập ở ô C5.
Em chân thành cám ơn các anh chị.
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)    On Error Resume Next
    Dim vitri As String
    Dim bien As String
    For i = 81 To Range("l1").Value + 81
        bien = Range("c" & i).Value
           If (bien = "") Then
               vitri = i
               Exit For
           End If
    Next i
    'Range("c" & i - 1).Value = "=IF(RC[-1]<>"""",IF(MONTH(RC[-1])=MONTH(R[-1]C[-1]),R[-1]C+1,1),"""")"
    t = Range("B" & vitri - 1).Value + Range("B" & vitri).Value
    If t > 0 Then
        Else
        If Range("C" & vitri - 1).Value > 0 Then
            If Range("C" & vitri - 1).Value = Range("C" & vitri - 2).Value Then
            Range("B" & vitri - 1).Value = Range("B" & vitri - 2).Value
            Else
            Range("B" & vitri - 1).Value = "=NOW()"
            Range("B" & vitri - 1).Copy
            Range("B" & vitri - 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Application.CutCopyMode = False
            End If
       'Range("a" & vitri).Select
        End If
    End If
    Dim l As Integer
    'Range("l2").Value = Range("d2").Value
    l = Round(Rnd * Range("l1").Value, 0)
    If Int(Range("l2").Value) > 42650 Then
    Range("L2").Value = Range("b" & l).Value
    Else
    'Range("m2").Value = "=vnd(m1)"
    Range("L2").Value = "=J2"
    'Exit Sub
    End If
End Sub

Nếu như bạn mô tả thì cần gì code dài loằng ngoằng ntn nhỉ? chỉ 3 dòng là xong.
 
Upvote 0
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 3 Then Cells(Target.Row, 2) = Now
End Sub
Cám ơn anh nhiều lắm đúng ý em rồi nhưng làm sao cho nó hiển thị giờ và phú thôi và giờ là theo chuẩn 24 giờ chứ không chỉ đến 12 giờ thôi.
Và nếu không có gì thì không ra. Cái này em thử nhấn phím F2 không nhập gì rồi enter nó cũng ra nữa.
Phiền anh xem xét thêm dùm em. Cám ơn anh nhiều lắm lắm. /-*+/
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn anh nhiều lắm đúng ý em rồi nhưng làm sao cho nó hiển thị giờ và phú thôi và giờ là theo chuẩn 24 giờ chứ không chỉ đến 12 giờ thôi.
Và nếu không có gì thì không ra. Cái này em thử nhấn phím F2 không nhập gì rồi enter nó cũng ra nữa.
Phiền anh xem xét thêm dùm em. Cám ơn anh nhiều lắm lắm. /-*+/
Về hiển thị thì bạn chỉ format lại thui. Còn TH rỗng thì thay code sau:
Thay target.column = 3. Bằng cells(target.row,3)<>""
 
Upvote 0
Bạn coi lại xem, chứ mình vừa check lại, có vấn đề gì đâu.
Mình chả biết bên mình bị cái gì nữa, dù format cả cột B, nhưng khi nhập 1 giá trị vào cột C, thì nó lại hiện ra ngày tháng năm và giờ phút giay luôn, chả biết sao nữa, chắc máy mình điên rồi.
Dù sao cũng rất cám ơn bạn rất nhiều.
 
Upvote 0
Mình chả biết bên mình bị cái gì nữa, dù format cả cột B, nhưng khi nhập 1 giá trị vào cột C, thì nó lại hiện ra ngày tháng năm và giờ phút giay luôn, chả biết sao nữa, chắc máy mình điên rồi.
Dù sao cũng rất cám ơn bạn rất nhiều.
Bạn thử định dạng với code xem
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If [FONT=Verdana]Cells(Target.Row, 3) <>""[/FONT][FONT=Verdana] Then
             Cells(Target.Row, 2) = Now
[/FONT]        [FONT=Verdana]Cells(Target.Row, 2)[/FONT].NumberFormat = "h:mm;@"
    End if
End Sub
 
Upvote 0
Bạn thử định dạng với code xem
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If [FONT=Verdana]Cells(Target.Row, 3) <>""[/FONT][FONT=Verdana] Then
             Cells(Target.Row, 2) = Now
[/FONT]        [FONT=Verdana]Cells(Target.Row, 2)[/FONT].NumberFormat = "h:mm;@"
    End if
End Sub
Cám ơn anh nhiều nhiều, đúng ý em rồi./-*+/
 
Upvote 0
Bạn thử định dạng với code xem
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If [FONT=Verdana]Cells(Target.Row, 3) <>""[/FONT][FONT=Verdana] Then
             Cells(Target.Row, 2) = Now
[/FONT]        [FONT=Verdana]Cells(Target.Row, 2)[/FONT].NumberFormat = "h:mm;@"
    End if
End Sub
Em hiểu đoạn code của anh như thế này có đứng không nha. Mong anh chi giáo thêm
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(Target.Row, 3) <>"" Then ' Điều kiện nhập sẽ bắt đầu từ cột thứ ba từ trái sang
Cells(Target.Row, 2) = Now ' Kết quả se xuất hiện ở cột thứ 2 từ trái sang
Cells(Target.Row, 2).NumberFormat = "h:mm;@" ' Định dạng chỉ xuất hiện giờ phút
End if
End Sub


Bay giờ em đổi số 3 thành C4 tức là ấn định điều kiện sẽ nhập bắt đầu từ ô số C4 trở đi. Kết quả sẽ là B4 trở đi. Mong anh giúp đỡ thêm. /-*+/
 
Upvote 0
Web KT

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

Back
Top Bottom