Tạo code sự kiện (Worksheet_Change) để thưc thi các (Sub) (1 người xem)

Liên hệ QC

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

Thuyanhanoi

Thành viên thường trực
Tham gia
15/10/12
Bài viết
304
Được thích
154
Nghề nghiệp
Nhân viên
Vấn đề của em thế này mong được các bác hướng dẫn giúp!.
- Em có viết một số (Sub) để thực hiện các việc khác nhau là: Sub CV_1() ; CV_2(); CV_3(); CV_4(); CV_5()...
- Nay em muôn dùng code: Private Sub Worksheet_Change(ByVal Target As Range) Với 1 Data validation Tại ô [P4] vơi mục đích như sau:
Chọn tại ô [P4] = 1 sẽ chạy Sub CV_1()
Chọn tại ô [P4] = 2 sẽ chạy Sub CV_2()
Chọn tại ô [P4] = 3 sẽ chạy Sub CV_3()
...
Không biết như vậy có thực hiện được không?
- em có thử với code thế này:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$P$4" Then
        Select Case Target.Value
        Case 1
            Target.Value = "1"
            Call CV_1
        Case 2
            Target.Value = "2"
            Call CV_2
        Case 3
            Target.Value = "3"
            Call CV_3
        Case 4
            Target.Value = "4"
            Call CV_4
        End Select
    End If
End Sub
Thì nó bắt Restart lai excel luôn!.
Mọi người chỉ giùm em chỗ sai nhé!. Xin cảm ơn!.
 

File đính kèm

Lần chỉnh sửa cuối:
Vấn đề của em thế này mong được các bác hướng dẫn giúp!.
- Em có viết một số (Sub) để thực hiện các việc khác nhau là: Sub CV_1() ; CV_2(); CV_3(); CV_4(); CV_5()...
- Nay em muôn dùng code: Private Sub Worksheet_Change(ByVal Target As Range) Với 1 Data validation Tại ô [P4] vơi mục đích như sau:
Chọn tại ô [P4] = 1 sẽ chạy Sub CV_1()
Chọn tại ô [P4] = 2 sẽ chạy Sub CV_2()
Chọn tại ô [P4] = 3 sẽ chạy Sub CV_3()
...
Không biết như vậy có thực hiện được không?
- em có thử với code thế này:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$P$4" Then
        Select Case Target.Value
        Case 1
            Target.Value = "1"
            Call CV_1
        Case 2
            Target.Value = "2"
            Call CV_2
        Case 3
            Target.Value = "3"
            Call CV_3
        Case 4
            Target.Value = "4"
            Call CV_4
        End Select
    End If
End Sub
Thì nó bắt Restart lai excel luôn!.
Mọi người chỉ giùm em chỗ sai nhé!. Xin cảm ơn!.
Bạn đang bị vấp ngã chổ
Mã:
Target.Value = "1"
thay đổi giá trị của ô mới vừa thay đổi
Bạn thử lại bằng code này xem
Mã:
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$P$4" Then
         Application.Run "CV_" & Target.Value
    End If
End Sub
 
Upvote 0
Vấn đề của em thế này mong được các bác hướng dẫn giúp!.
- Em có viết một số (Sub) để thực hiện các việc khác nhau là: Sub CV_1() ; CV_2(); CV_3(); CV_4(); CV_5()...
- Nay em muôn dùng code: Private Sub Worksheet_Change(ByVal Target As Range) Với 1 Data validation Tại ô [P4] vơi mục đích như sau:
Chọn tại ô [P4] = 1 sẽ chạy Sub CV_1()
Chọn tại ô [P4] = 2 sẽ chạy Sub CV_2()
Chọn tại ô [P4] = 3 sẽ chạy Sub CV_3()
...
Không biết như vậy có thực hiện được không?
- em có thử với code thế này:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$P$4" Then
        Select Case Target.Value
        Case 1
           [B][COLOR=#ff0000] Target.Value = "1"[/COLOR][/B]
            Call CV_1
        Case 2
           [B][COLOR=#ff0000] Target.Value = "2"[/COLOR][/B]
            Call CV_2
        Ca[B]se 3
            [COLOR=#ff0000]Target.Value = "3"[/COLOR][/B]
            Call CV_3
        Case 4
        [B][COLOR=#ff0000]    Target.Value = "4"[/COLOR][/B]
            Call CV_4
        End Select
    End If
End Sub
Thì nó bắt Restart lai excel luôn!.
Mọi người chỉ giùm em chỗ sai nhé!. Xin cảm ơn!.
Bạn bỏ hết các dòng đỏ đi là OK
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn đang bị vấp ngã chổ
Mã:
Target.Value = "1"
thay đổi giá trị của ô mới vừa thay đổi
Bạn thử lại bằng code này xem
Mã:
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$P$4" Then
         Application.Run "CV_" & Target.Value
    End If
End Sub
Cách của Bác Thật ngắn gọn và hay!. Em cảm ơn!.
 
Upvote 0
Application.Run "CV_" & Target.Value

Code này coi chừng bị bể nếu vì lý do gì đó trị trong ô bị sai.
 
Upvote 0
Web KT

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

Back
Top Bottom