hỏi cách tạo 1 macro tự chạy

Liên hệ QC

sebastian

Thành viên mới
Tham gia
24/9/06
Bài viết
10
Được thích
0
Mình mới làm wen VBA , thường để làm 1 lệnh , mình làm thế này :
tạo 1 control button , double click vào và viết code . Mỗi lần muốn chạy code thì fải click vào cái button .
Mình muốn hỏi có cách viết code nào để nó làm ngay cho mình nếu thỏa điều kiện đặt ra . VD đơn giản là nếu bất kì cell nào của cột B có bất kì kí tự jì thì cell tương ứng bên cột A sẽ hiện ra chữ "Yes" , ngược lại sẽ hiện ra chữ "No"
Mình xin cám ơn nhìu /-*+/
 
Bạn xem có đúng không nha! Code được viết trong Sheet1, bạn bấm phải chuột vào tên Sheet1 chọn View Code sẽ thấy code này.
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 Then
    If Cells(Target.Row - 1, 2).Value = "j" Then
        Cells(Target.Row - 1, 1) = "Yes"
    Else
        Cells(Target.Row - 1, 1) = "No"
    End If
End If
End Sub
Thân.
 

File đính kèm

Upvote 0
Hình như đồng chí Hoang B đọc lộn yêu cầu thì phải:
nếu bất kì cell nào của cột B có bất kì kí tự thì cell tương ứng bên cột A sẽ hiện ra chữ "Yes" , ngược lại sẽ hiện ra chữ "No"
Có bất kỳ ký tự ... hỏng phải chử j
------------------------Theo tôi thì phải là:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  If Not Intersect([B1:B100], Target) Is Nothing Then
     Set Blk_Rng = [B1:B100].SpecialCells(4)
     Set Con_Rng = [B1:B100].SpecialCells(2, 23)
     Blk_Rng.Offset(, -1).Value = "No"
     Con_Rng.Offset(, -1).Value = "Yes"
  End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next If Target.Column = 2 Then     If Cells(Target.Row - 1, 2).Value [COLOR=red] ""[/COLOR] Then         Cells(Target.Row - 1, 1) = "Yes"     Else         Cells(Target.Row - 1, 1) = "No"     End If End If End Sub
Vậy thì sửa lại chút ít thôi!
 
Lần chỉnh sửa cuối:
Upvote 0
cám ơn các bạn nhiều . Các bạn nhiệt tình wá ^^
 
Upvote 0
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 Then
    If Cells(Target.Row - 1, 2).Value [COLOR=red]<> ""[/COLOR] Then
        Cells(Target.Row - 1, 1) = "Yes"
    Else
        Cells(Target.Row - 1, 1) = "No"
    End If
End If
End Sub
Vậy thì sửa lại chút ít thôi!

Sao mình đánh kí tự bất kỳ vào nó không chạy là yes, mình phải làm sao đây, nhờ bạn chỉ dẫn giúp vì mình mới bắt đầu học tập trên diễn đàn nên chưa nắm. Cám ơn các bạn và đặc biệt là các thành viên sáng lập diễn đàn.
 
Upvote 0
Bạn bấm phải chuột vào tên Sheet bên dưới (Ví dụ: Sheet1), rồi bạn chọn View Code. Sau khi bấm xong sẽ có 1 trang khác hiện ra, bạn copy toàn bộ code này rồi chép vào đó. Code này sử dụng trên cột B, nếu bạn gõ bất kỳ kí tự nào trên cột B rồi Enter thì cột A sẽ có chữ "Yes" còn không thì "No". Bạn thử lại xem. Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn bấm phải chuột vào tên Sheet bên dưới (Ví dụ: Sheet1), rồi bạn chọn View Code. Sau khi bấm xong sẽ có 1 trang khác hiện ra, bạn copy toàn bộ code này rồi chép vào đó.
Code này sử dụng trên cột B, nếu bạn gõ bất kỳ kí tự nào trên cột B rồi Enter thì cột A sẽ có chữ "Yes" còn không thì "No". Bạn thử lại xem.
Thân.

Xin lỗi vì mình chậm hiểu. Mình đã làm như hướng dẫn nhưng không hiểu sao nó vẫn không chạy được. Bạn xem dùm mình nhe!
 

File đính kèm

Upvote 0
Có thể máy tính của bạn đã đặt security ở mức High rồi
Bạn vào menu Tools\Macro\Security và chọn vào mục "Medium"
Tiếp theo khi mở file sẽ có 1 hộp cảnh báo, bạn bấm vào nút "Enable macro" là mọi chuyện sẽ được giãi quyết
 

File đính kèm

Upvote 0
Bạn vào Tools -> Macro -> Security, xem có được chọn Low chưa. Nếu chưa thì chọn lại, rồi khởi động file này lại xem! Mình nghĩ do máy bạn khóa Macro đi rồi nên nó không chạy đó! Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn vào Tools -> Macro -> Security, xem có được chọn Low chưa. Nếu chưa thì chọn lại, rồi khởi động file này lại xem!
Mình nghĩ do máy bạn khóa Macro đi rồi nên nó không chạy đó!
Thân.

Cám ơn các bạn thật nhiều vì đã nhiệt tình hướng dẫn.
 
Upvote 0
Web KT

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

Back
Top Bottom