Private sub Worksheets_Activate ()
 Select case pt
 Case pt.value = 1
 pt.font.color = RGB(0, 0, 255)
 Case pt.value = 2
 pt.font.color = RGB(0, 255, 255)
 ...
 End Select
 End sub
 Chương trình không làm việc đúng, xin hỏi sai ở đâu?" />
  • Thứ Hai, 18/10/2004 16:43 (GMT+7)

    Câu hỏi :
     Lập trình VBA trong Excel, tôi muốn khi gõ 1 ký số vào 1 cell (thí dụ là 1, 2 ...) thì số đó sẽ được hiển thị theo màu tương ứng. Đoạn code như sau:
     Set Worksheets("Sheet1").Range("A1:A30") as pt
     Private sub Worksheets_Activate ()
     Select case pt
     Case pt.value = 1
     pt.font.color = RGB(0, 0, 255)
     Case pt.value = 2
     pt.font.color = RGB(0, 255, 255)
     ...
     End Select
     End sub
     Chương trình không làm việc đúng, xin hỏi sai ở đâu?

    Trả lời :
     Để giải quyết yêu cầu của bạn, trước hết bạn phải định nghĩa 10 giá trị màu cho 10 ký số khác nhau, sau đó bạn viết thủ tục xử lý sự kiện xảy ra sau khi nhập liệu xong 1 cell, thủ tục xử lý sự kiện này không phải là Worksheet_Activate() như bạn viết, mà là Worksheet_Change(). Để viết thủ tục này, bạn hãy chọn menu Tools.macro.Visual Basic Editor. Trong cửa sổ VBAProject, ấn kép chuột vào tên Sheet cần xử lý (thí dụ Sheet1), chọn mục "Worksheet" trong listbox các đối tượng, chọn mục "Change" trong listbox các sự kiện kết hợp, VB sẽ tự tạo hàm xử lý sự kiện tương ứng. Bạn viết code vào thân thủ tục này như sau:

     Private Sub Worksheet_Change(ByVal Target As Range)
     Color0 = RGB(0, 0, 255)
     Color1 = RGB(0, 255, 0)
     Color2 = RGB(255, 0, 0)
     Color3 = RGB(255, 0, 255)
     Color4 = RGB(0, 255, 255)
     Color5 = RGB(255, 255, 0)
     Color6 = RGB(128, 128, 128)
     Color7 = RGB(128, 0, 128)
     Color8 = RGB(0, 128, 255)
     Color9 = RGB(255, 128, 0)
     Select Case Target.Value
        Case 0: Target.Font.Color = Color0
        Case 1: Target.Font.Color = Color1
        Case 2: Target.Font.Color = Color2
        Case 3: Target.Font.Color = Color3
        Case 4: Target.Font.Color = Color4
        Case 5: Target.Font.Color = Color5
        Case 6: Target.Font.Color = Color6
        Case 7: Target.Font.Color = Color7
        Case 8: Target.Font.Color = Color8
        Case 9: Target.Font.Color = Color9
     End Select
     End Sub

    Sau khi đã viết xong thủ tục, bạn hãy quay về Worksheet Excel và thử nghiệm kết quả, mỗi lần bạn nhập các số từ 0 tới 9 vào 1 cell nào đó rồi enter thì ký số mới nhập vào cell đó sẽ được hiển thị theo màu qui định với giá trị của nó.
     
    Chuyên mục: Ứng dụng văn phòng