TƯ VẤN CODE VBA

Blue Softs epl Liên hệ QC

yump

Thành viên mới
Tham gia
19/10/21
Bài viết
12
Được thích
0
Chào mọi người ạh. Em có một đoạn code VBA tự động cập nhật thời gian khi em sửa một dữ liệu trong cột B1:B50. Nhưng em muốn mở rộng vùng sửa dữ liệu em sang nhiều cột hơn nữa thì code của em nên chỉnh sửa như thế nào ạh. Vì em cũng mới tập tành VBA nên cũng không rành rọt mấy. Mong mọi người hỗ trợ giúp em ạh. Em xin cảm ơn.
Đoạn code:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Sheet1.Range("B1:B50"), Target) Is Nothing Then
If Sheet1.Range("B" & Target.Row) <> "" Then
Sheet1.Range("A" & Target.Row) = Now
End If
End If
End Sub
 

batman1

Thành viên gạo cội
Tham gia
8/9/14
Bài viết
4,777
Được thích
7,890
Có nhiều điều bạn không nói rõ.

Các cột là liên tiếp, tức vd. B:E chứ không phải vd. B, D:E, K? Chỉ phản ứng khi thay đổi từng ô một, tức không phản ứng khi đồng thời thay đổi vd. C5:C9? Dù thay đổi trong cột nào thì cũng nhập ngày vào cột A? Chỉ nhập ngày vào A khi nhập gì đó vào B:E, nhưng khi xóa ô trong B:E thì không xóa ngày trong A?

Phản ứng khi thay đổi trong B1:E50

Theo đúng như code của bạn
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 And Not Intersect(Me.Range("B1:E50"), Target) Is Nothing Then
        If Not IsEmpty(Target.Value) Then Me.Range("A" & Target.Row) = Now
    End If
End Sub
 

yump

Thành viên mới
Tham gia
19/10/21
Bài viết
12
Được thích
0
Có nhiều điều bạn không nói rõ.

Các cột là liên tiếp, tức vd. B:E chứ không phải vd. B, D:E, K? Chỉ phản ứng khi thay đổi từng ô một, tức không phản ứng khi đồng thời thay đổi vd. C5:C9? Dù thay đổi trong cột nào thì cũng nhập ngày vào cột A? Chỉ nhập ngày vào A khi nhập gì đó vào B:E, nhưng khi xóa ô trong B:E thì không xóa ngày trong A?

Phản ứng khi thay đổi trong B1:E50

Theo đúng như code của bạn
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 And Not Intersect(Me.Range("B1:E50"), Target) Is Nothing Then
        If Not IsEmpty(Target.Value) Then Me.Range("A" & Target.Row) = Now
    End If
End Sub
Vâng, em cảm ơn anh ạh. Như anh nói thì đúng là em không nêu cụ thể.
Bảng của em thì là các cột liên tiếp và đúng là em quên mất việc khi thay đổi hiệu ứng một loạt các ô trong một cột ạh. Và kết quả thay đổi ra sao thì ngày cũng nhập vào cột đầu tiên là A ạh. Còn xóa thì không thay đổi giá trị ngày trong cột A ạh. Anh có thể xem giúp em phần thay đổi hàng loạt các giá trị trong ô một cột được không ạh. Em cảm ơn anh nhiều ạh.
 

Ba Tê

Cạo Rồi Khỏi Gội
Tham gia
5/5/09
Bài viết
12,128
Được thích
17,522
Vâng, em cảm ơn anh ạh. Như anh nói thì đúng là em không nêu cụ thể.
Bảng của em thì là các cột liên tiếp và đúng là em quên mất việc khi thay đổi hiệu ứng một loạt các ô trong một cột ạh. Và kết quả thay đổi ra sao thì ngày cũng nhập vào cột đầu tiên là A ạh. Còn xóa thì không thay đổi giá trị ngày trong cột A ạh. Anh có thể xem giúp em phần thay đổi hàng loạt các giá trị trong ô một cột được không ạh. Em cảm ơn anh nhiều ạh.
Bạn đưa 1 file giả lập lên, ghi rõ yêu cầu, vùng nào thay đổi thì chỗ nào cập nhật thời gian?
 

Maika8008

Thành viên gắn bó
Tham gia
12/6/20
Bài viết
2,685
Được thích
2,972
Donate (Momo)
Donate
Giới tính
Nam
Vâng, em cảm ơn anh ạh. Như anh nói thì đúng là em không nêu cụ thể.
Bảng của em thì là các cột liên tiếp và đúng là em quên mất việc khi thay đổi hiệu ứng một loạt các ô trong một cột ạh. Và kết quả thay đổi ra sao thì ngày cũng nhập vào cột đầu tiên là A ạh. Còn xóa thì không thay đổi giá trị ngày trong cột A ạh. Anh có thể xem giúp em phần thay đổi hàng loạt các giá trị trong ô một cột được không ạh. Em cảm ơn anh nhiều ạh.
Quá nhiều "từ" ạh! Mà không viết ạ được hay sao mà phải là ạh?
 

yump

Thành viên mới
Tham gia
19/10/21
Bài viết
12
Được thích
0
Quá nhiều "từ" ạh! Mà không viết ạ được hay sao mà phải là ạh?
Vâng ạh. Cho em hỏi là ạh với ạ thì có ảnh hưởng gì không vậy. Cách sử dụng ngôn từ là do thói quen và tính cách hình thành của mỗi người hết mà.
Bài đã được tự động gộp:

Bạn đưa 1 file giả lập lên, ghi rõ yêu cầu, vùng nào thay đổi thì chỗ nào cập nhật thời gian?
Em xin phép gửi file ạh. Nhờ mình xem giúp nhé. Em cảm ơn.
 

File đính kèm

  • MASTER-REPORT.xlsl.xlsm
    16.4 KB · Đọc: 2

Maika8008

Thành viên gắn bó
Tham gia
12/6/20
Bài viết
2,685
Được thích
2,972
Donate (Momo)
Donate
Giới tính
Nam
Vâng ạh. Cho em hỏi là ạh với ạ thì có ảnh hưởng gì không vậy. Cách sử dụng ngôn từ là do thói quen và tính cách hình thành của mỗi người hết mà.
Bài đã được tự động gộp:


Em xin phép gửi file ạh. Nhờ mình xem giúp nhé. Em cảm ơn.
Có đấy! Nó khiến tiếng Việt trở nên mất giá trị vì đã bị biến tướng và trở thành 1 trò đùa.
 

VetMini

Chuyên gia GPE
Tham gia
21/12/12
Bài viết
12,564
Được thích
16,261
Có đấy! Nó khiến tiếng Việt trở nên mất giá trị vì đã bị biến tướng và trở thành 1 trò đùa.
Đối với người nghe thì "mất giá trị". Nhưng đối với người nói thì chưa chắc đã mất cái gì đâu?
Nếu cuối cùng người ta cũng đạt mục đích là lấy được bài giải?
 

yump

Thành viên mới
Tham gia
19/10/21
Bài viết
12
Được thích
0
Vâng ạh. Cảm ơn mọi người đã góp ý. Và bản thân em tôn trọng cách nghĩ và góc nhìn của mọi người. Em cũng có quan điểm và góc nhìn cá nhân riêng em. Một lần nữa, xin cảm ơn mọi người đã nhiệt tình chỉ dẫn em.
 

batman1

Thành viên gạo cội
Tham gia
8/9/14
Bài viết
4,777
Được thích
7,890
Vâng, em cảm ơn anh ạh. Như anh nói thì đúng là em không nêu cụ thể.
Bảng của em thì là các cột liên tiếp và đúng là em quên mất việc khi thay đổi hiệu ứng một loạt các ô trong một cột ạh. Và kết quả thay đổi ra sao thì ngày cũng nhập vào cột đầu tiên là A ạh. Còn xóa thì không thay đổi giá trị ngày trong cột A ạh. Anh có thể xem giúp em phần thay đổi hàng loạt các giá trị trong ô một cột được không ạh. Em cảm ơn anh nhiều ạh.
Vùng đang dùng là B2:AA10000. Tự thay cho thích hợp.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, cell_ As Range
    Set rng = Intersect(Me.Range("B2:AA10000"), Target)
    If Not rng Is Nothing Then
        Application.EnableEvents = False
        For Each cell_ In rng
            If Not IsEmpty(cell_.Value) Then Me.Range("A" & cell_.Row) = Now
        Next cell_
        Application.EnableEvents = True
    End If
End Sub
Bài đã được tự động gộp:

Vâng ạh. Cảm ơn mọi người đã góp ý.
Bạn chấp nhận lời góp ý mà bạn vẫn viết như cũ thì bạn đâu có sửa sai? Người ta không bắt bạn phải "ạ" ít đi đâu. Bạn có thể "ạ" 100 vẫn được. Người ta góp ý vì trong tiếng Việt không có "ạh". Chỉ có "ạ" thôi, mà bạn trước sau đều viết "ạh" nên vẫn sai.
 
Lần chỉnh sửa cuối:

VetMini

Chuyên gia GPE
Tham gia
21/12/12
Bài viết
12,564
Được thích
16,261
...

Bạn chấp nhận lời góp ý mà bạn vẫn viết như cũ thì bạn đâu có sửa sai? Người ta không bắt bạn phải "ạ" ít đi đâu. Bạn có thể "ạ" 100 vẫn được. Người ta góp ý vì trong tiếng Việt không có "ạh". Chỉ có "ạ" thôi, mà bạn trước sau đều viết "ạh" nên vẫn sai.
Ý của bác mới quan trọng chứ ý của người khác ở đây là "trò đùa" mờ. :p

Chắc chắn là thớt biết chuyện sai hay đúng. Và lời "cảm ơn mọi người đã góp ý" kia là lời nửa miệng. Nếu không muốn nói là mỉa mai. Đâu hề có chuyện "chấp nhận".
 
Web KT
Top Bottom