Chuyển đoạn code có tác dụng trong ThisWorkbook thành add-in

Liên hệ QC

QuangMinhtb

Thành viên hoạt động
Tham gia
31/10/19
Bài viết
171
Được thích
34
Em tham khảo đoạn code để tô màu ô con trỏ chuột trong excel.
Để code có tác dụng phải copy code vào khung VBE của Workbook
Các anh/chị cho em hỏi làm sao để chuyển code thành add in để chỉ cần load add in vào cử dụng được.
Em xin chân thành cảm ơn, đoạn code cần coppy vào khung VBE của Workbook như sau:
Mã:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Sh.Cells.Interior.ColorIndex = xlNone
Target.Interior.ColorIndex = 22
End Sub
 
Em tham khảo đoạn code để tô màu ô con trỏ chuột trong excel.
Để code có tác dụng phải copy code vào khung VBE của Workbook
Các anh/chị cho em hỏi làm sao để chuyển code thành add in để chỉ cần load add in vào cử dụng được.
Em xin chân thành cảm ơn, đoạn code cần coppy vào khung VBE của Workbook như sau:
Mã:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Sh.Cells.Interior.ColorIndex = xlNone
Target.Interior.ColorIndex = 22
End Sub
Em nghĩ là với chức năng này không nên áp dụng cho toàn bô File Excel đâu vì nó bỏ fill những ô khác
Hình như phải như này thì code mới hoạt động
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Cells.Interior.ColorIndex = xlNone
Target.Interior.ColorIndex = 22
End Sub
 
Em nghĩ là với chức năng này không nên áp dụng cho toàn bô File Excel đâu vì nó bỏ fill những ô khác
Hình như phải như này thì code mới hoạt động
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Cells.Interior.ColorIndex = xlNone
Target.Interior.ColorIndex = 22
End Sub
Dạ! Ý em là chuyển code đó thành add in thì phải làm sao ạ?
Đoạn code bài #1 em đằng là phải coppy vào khung VBE của Workbook .
 
Dạ! Ý em là chuyển code đó thành add in thì phải làm sao ạ?
Đoạn code bài #1 em đằng là phải coppy vào khung VBE của Workbook .
Chờ anh/chị trên diễn đàn đi chứ vụ này em chịu rồi, Event đưa vào add-in thì em không biết rồi.
 
Tôi hướng dẫn để sau này cứ bắt chước như thế.

Mở tập tin mới -> Alt + F11 -> menu Insert -> Class module -> trong cửa sổ Properties đổi Name từ Class1 thành clsExcelEvents -> dán code sau vào cửa sổ code ở bên phải
Mã:
Private WithEvents ExcelApp As Excel.Application

Private Sub Class_Terminate()
    Set ExcelApp = Nothing
End Sub

Public Sub Create(ByVal ExcelApplication As Excel.Application)
    If Not ExcelApp Is Nothing Then Exit Sub
    Set ExcelApp = ExcelApplication
End Sub

Private Sub ExcelApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Sh.Cells.Interior.ColorIndex = xlNone
    Target.Interior.ColorIndex = 22
End Sub

-> dán code sau vào module ThisWorkbook
Mã:
Private SecretEvent As clsExcelEvents

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Set SecretEvent = Nothing
End Sub

Private Sub Workbook_Open()
    Set SecretEvent = New clsExcelEvents
    SecretEvent.Create Application
End Sub

-> trong cửa sổ Properties sửa IsAddin thành True -> vẫn trong VBE -> menu File -> Save Book1 -> nhập vào File name vd. ToMau -> trong Save as type chọn *.xlam -> OK -> đóng Excel (nếu được hỏi có save Book1 không thì chọn KHÔNG vì đã có ToMau.xlam rồi) -> mở lại Excel -> thêm add-in ToMau.

Trong tập tin tôi đã làm hộ.
 

File đính kèm

  • ToMau.xlam
    13 KB · Đọc: 11
Tôi hướng dẫn để sau này cứ bắt chước như thế.

Mở tập tin mới -> Alt + F11 -> menu Insert -> Class module -> trong cửa sổ Properties đổi Name từ Class1 thành clsExcelEvents -> dán code sau vào cửa sổ code ở bên phải
Mã:
Private WithEvents ExcelApp As Excel.Application

Private Sub Class_Terminate()
    Set ExcelApp = Nothing
End Sub

Public Sub Create(ByVal ExcelApplication As Excel.Application)
    If Not ExcelApp Is Nothing Then Exit Sub
    Set ExcelApp = ExcelApplication
End Sub

Private Sub ExcelApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Sh.Cells.Interior.ColorIndex = xlNone
    Target.Interior.ColorIndex = 22
End Sub

-> dán code sau vào module ThisWorkbook
Mã:
Private SecretEvent As clsExcelEvents

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Set SecretEvent = Nothing
End Sub

Private Sub Workbook_Open()
    Set SecretEvent = New clsExcelEvents
    SecretEvent.Create Application
End Sub

-> trong cửa sổ Properties sửa IsAddin thành True -> vẫn trong VBE -> menu File -> Save Book1 -> nhập vào File name vd. ToMau -> trong Save as type chọn *.xlam -> OK -> đóng Excel (nếu được hỏi có save Book1 không thì chọn KHÔNG vì đã có ToMau.xlam rồi) -> mở lại Excel -> thêm add-in ToMau.

Trong tập tin tôi đã làm hộ.
Dạ em cảm ơn thầy nhiều.
Thầy hướng dẫn rất chi tiết và cụ thể ạ!
 
Tôi hướng dẫn để sau này cứ bắt chước như thế.

Mở tập tin mới -> Alt + F11 -> menu Insert -> Class module -> trong cửa sổ Properties đổi Name từ Class1 thành clsExcelEvents -> dán code sau vào cửa sổ code ở bên phải
Mã:
Private WithEvents ExcelApp As Excel.Application

Private Sub Class_Terminate()
    Set ExcelApp = Nothing
End Sub

Public Sub Create(ByVal ExcelApplication As Excel.Application)
    If Not ExcelApp Is Nothing Then Exit Sub
    Set ExcelApp = ExcelApplication
End Sub

Private Sub ExcelApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Sh.Cells.Interior.ColorIndex = xlNone
    Target.Interior.ColorIndex = 22
End Sub

-> dán code sau vào module ThisWorkbook
Mã:
Private SecretEvent As clsExcelEvents

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Set SecretEvent = Nothing
End Sub

Private Sub Workbook_Open()
    Set SecretEvent = New clsExcelEvents
    SecretEvent.Create Application
End Sub

-> trong cửa sổ Properties sửa IsAddin thành True -> vẫn trong VBE -> menu File -> Save Book1 -> nhập vào File name vd. ToMau -> trong Save as type chọn *.xlam -> OK -> đóng Excel (nếu được hỏi có save Book1 không thì chọn KHÔNG vì đã có ToMau.xlam rồi) -> mở lại Excel -> thêm add-in ToMau.

Trong tập tin tôi đã làm hộ.
 
Web KT
Back
Top Bottom