Xin giúp đỡ về sự kiện Worksheet_change.

Liên hệ QC

phamhoangdung

Thành viên mới
Tham gia
4/7/13
Bài viết
3
Được thích
0
Chào các Anh/Chị,

Tôi mới tập tành viết code VBA cho Excel nên chưa rành lắm mong mọi người giúp ơỡ.

Hiện tại, tôi đang viết chương trình nhận data từ cân truyền về máy tính sử dụng VB6 và file excel 2010.

Chương trình trên VB6 hoạt động ok.

Tuy nhiên, code trên file excel gặp lỗi như sau :

1./ Khi tôi đặt code xử lý data truyền về tại sự kiện Worksheet change : dòng thứ nhất data lỗi, dòng thứ 2 data OK và luôn luôn như thế (truyền 1 lần data nhưng nhận được 2 lần data trên Excel)

2./ Nếu tôi đặt code tại sự kiện Worksheet select change, lần đầu tiên data truyền về, code chạy đúng nhưng đến lần kế tiếp code không hoạt động mặc dù có data truyền về.
Hy vọng mọi người giúp đỡ.

Thanks
 

File đính kèm

Chào các Anh/Chị,

Tôi mới tập tành viết code VBA cho Excel nên chưa rành lắm mong mọi người giúp ơỡ.

Hiện tại, tôi đang viết chương trình nhận data từ cân truyền về máy tính sử dụng VB6 và file excel 2010.

Chương trình trên VB6 hoạt động ok.

Tuy nhiên, code trên file excel gặp lỗi như sau :

1./ Khi tôi đặt code xử lý data truyền về tại sự kiện Worksheet change : dòng thứ nhất data lỗi, dòng thứ 2 data OK và luôn luôn như thế (truyền 1 lần data nhưng nhận được 2 lần data trên Excel)

2./ Nếu tôi đặt code tại sự kiện Worksheet select change, lần đầu tiên data truyền về, code chạy đúng nhưng đến lần kế tiếp code không hoạt động mặc dù có data truyền về.
Hy vọng mọi người giúp đỡ.

Cảm ơn
Dùng thử thế này xem sao?
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim EndR As Long
EndR = Sheets("data").Range("G65000").End(xlUp).Row
If Not Intersect(Target, Range("A2")) Is Nothing Then
    Application.EnableEvents = False
    With Sheets("data")
        .Range("C" & EndR + 1).Value = Format(Date, "dd/mm/yyyy")
        .Range("D" & EndR + 1).Value = Time
        .Range("G" & EndR + 1).Value = Left(Range("A2"), 6)
        .Range("H" & EndR + 1).Value = Right(Range("A2"), 6)
        .Range("I" & EndR + 1).Value = Mid(Range("A2"), 7, 7)
    End With
    Application.EnableEvents = True
End If
End Sub
 
Upvote 0
Thanks đã reply.

Tuy nhiên, code vẫn tạo ra 2 dòng như đã miêu tả.

Hy vọng Anh giúp đỡ.

Thanks.
 
Upvote 0
Cảm ơn đã reply.

Tuy nhiên, code vẫn tạo ra 2 dòng như đã miêu tả.

Hy vọng Anh giúp đỡ.

Cảm ơn.
Bây giờ bạn nêu mục đích cụ thể đi, tạo 2 dòng khi nào? nhập chổ nào trong sheet data mà lại 2 dòng? bạn nêu ví dụ mẫu từng bước bạn làm.
 
Upvote 0
Web KT

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

Back
Top Bottom