Hướng dẫn chuyển hàm thành VBA (1 người xem)

Liên hệ QC

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

betuyetdl

Thành viên mới
Tham gia
4/12/13
Bài viết
15
Được thích
0
Em có hàm thêm STT tự động ở cột A1, nếu cột E4 có dữ liệu thì sẽ tự động chèn STT
=IF(E4="","",COUNTA($E$4:E4)) ở các dòng trong cột A1 nếu không có hàm này thì STT sẽ không được chèn vào, em muốn chuyển hàm thêm STT tự động này thành VBA thì chuyển làm sao ạ ? em hoàn toàn mù tịt về VBA.
 
Đại khái là thế này
Nhấn ALT F11 copy đọan code vào sheet mà bạn muốn làm số TT
Đánh dữ liệu vào cột B cột A sẽ tự động đếm

Option Explicit
Sub worksheet_change(ByVal Target As Range)
If Target.Column = 2 And Target.Value <> "" Then
Cells(Target.Row, 1).Value = Application.WorksheetFunction.CountA(Range("B1:B" & Target.Row))
End If
End Sub
 
Upvote 0
cho em hỏi luôn trong file excel đã có 1 hàm lấy thời gian tự động:
Private Sub worksheet_change(ByVal Target As Range)
On Error Resume Next
With Range("E4:E10000")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target <> "" Then Target.Offset(, 2) = Now
End If
End With
End Sub
Nếu bây giờ copy code của bạn cho vào thì báo lỗi, nếu vậy sửa như thế nào ạ ? em mới chập chững không hiểu gì
 
Upvote 0
Tốt nhất bạn gửi file lên mình chỉnh giúp bạn, code mình đã test rồi mới gửi lên. bạn xem lại (nếu ngại gửi file lên đây thì gửi theo địa chỉ mai: thanhsang0612@gmail.com)
 
Upvote 0
cho em hỏi luôn trong file excel đã có 1 hàm lấy thời gian tự động:
Private Sub worksheet_change(ByVal Target As Range)
On Error Resume Next
With Range("E4:E10000")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target <> "" Then Target.Offset(, 2) = Now
End If
End With
End Sub
Nếu bây giờ copy code của bạn cho vào thì báo lỗi, nếu vậy sửa như thế nào ạ ? em mới chập chững không hiểu gì
Bạn dùng điều kiện để điều kiển cho 2 Worksheet_change nha
Cấu trúc Như thế này
If ....... then
Worksheet _change 1
If........ then
Worksheet _change 2
End if
End if
End sub
 
Upvote 0
Cám ơn bạn mình đã gửi rùi bạn coi giúp nếu nhúng code của bạn thì nó báo lỗi. Mình mới học chưa bít j.
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn bạn mình đã gửi rùi bạn coi giúp nếu nhúng code của bạn thì nó báo lỗi. Mình mới học chưa bít j.
Gửi lại cho bạn rùi, xem thử có ok chưa

Private Sub worksheet_change(ByVal Target As Range)
On Error Resume Next
With Range("C2:C10000")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target <> "" Then Target.Offset(, 2) = Now
Target.Offset(, -2).Value = Application.WorksheetFunction.CountA(Range("C2:C" & Target.Row))
End If
End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Gửi lại cho bạn rùi, xem thử có ok chưa

Private Sub worksheet_change(ByVal Target As Range)
On Error Resume Next
With Range("C2:C10000")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target <> "" Then Target.Offset(, 2) = Now
Target.Offset(, -2).Value = Application.WorksheetFunction.CountA(Range("C2:C" & Target.Row))
End If
End With
End Sub

thanks bạn có điều với hàm =IF(E4="","",COUNTA($E$4:E4)) khi mình xoá Tên thì STT sẽ tự động cập nhật lại cho liên tục nhưng với hàm code này thì lại không tự cập nhật STT cho liên tục ??? MÌnh hỏi thêm: bạn giải thích Target.Offset(, -2).Value = Application.WorksheetFunction.CountA(Range("C2:C" & Target.Row)) nghĩa là gì vậy ? mình không hiểu lắm. Mình muốn chèn STT vào một cột khác trong bảng tính như cột E, F mà không phải cột A thì phải chỉnh code như thế nào ạ ?
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mong anh xử lý nốt em test thử mấy lần rùi nhưng STT không tự cập nhật lại cho liên tục ạ. Em mò mãi từ trưa tới giờ mà không ra hjx
 
Upvote 0
Em gà quá làm cả ngày nay mà mãi ko ra, mong các anh chị hướng dẫn em với.
 
Upvote 0

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

Back
Top Bottom