Application.CellDragAndDrop = False chỉ áp dụng cho Workbook đã chọn?

Liên hệ QC

moihocvba

Thành viên thường trực
Tham gia
16/8/20
Bài viết
211
Được thích
50
Chào anh chị!
File Excel A của em có chọn những lệnh sau khi khởi động workbook
Mã:
Application.CellDragAndDrop = False
ActiveWindow.DisplayWorkbookTabs = False

Nhưng em muốn chỉ áp dụng cho Workbook A này, để khi mình mở workbook khác thì sẽ chuyển những lệnh trên thành True được không ạ? (mà không phải tắt Workbook A)
Mã:
Application.CellDragAndDrop = True
ActiveWindow.DisplayWorkbookTabs = True

Vì em muốn áp chỉ dụng riêng một vài file Excel chứ không phải tất cả ạ!
Em xin cám ơn!
 
Chào anh chị!
File Excel A của em có chọn những lệnh sau khi khởi động workbook
Mã:
Application.CellDragAndDrop = False
ActiveWindow.DisplayWorkbookTabs = False

Nhưng em muốn chỉ áp dụng cho Workbook A này, để khi mình mở workbook khác thì sẽ chuyển những lệnh trên thành True được không ạ? (mà không phải tắt Workbook A)
Mã:
Application.CellDragAndDrop = True
ActiveWindow.DisplayWorkbookTabs = True

Vì em muốn áp chỉ dụng riêng một vài file Excel chứ không phải tất cả ạ!
Em xin cám ơn!
Tạo một Class Module và đặt tên là clsExcelA thêm code sau vào Class clsExcelA.
Mã:
Option Explicit

Private WithEvents ExcelApp As Excel.Application
Public Sub Wrap(ByVal ExcelApplication As Excel.Application)
    If ExcelApp Is Nothing Then
        Set ExcelApp = ExcelApplication
    End If
End Sub

Private Sub Class_Terminate()
    If Not ExcelApp Is Nothing Then
        Set ExcelApp = Nothing
    End If
End Sub

Private Sub ExcelApp_WorkbookActivate(ByVal wb As Workbook)
    If wb Is ThisWorkbook Then
        KhoiDong False
    Else
        KhoiDong True
    End If
End Sub
Tạo 1 Module và thêm code sau vào Module vừa thêm này.
Mã:
Option Explicit

Public App As clsExcelA
Sub Auto_Open()
    Set App = New clsExcelA
    App.Wrap Application
    KhoiDong False
End Sub
Sub Auto_Close()
    Set App = Nothing
    KhoiDong True
End Sub

Public Sub KhoiDong(kt As Boolean)
    Application.CellDragAndDrop = kt
    ActiveWindow.DisplayWorkbookTabs = kt
End Sub
Lưu file xong đóng file và mở lại xem kết quả thế nào?
 
Upvote 0
Tạo một Class Module và đặt tên là clsExcelA thêm code sau vào Class clsExcelA.
Mã:
Option Explicit

Private WithEvents ExcelApp As Excel.Application
Public Sub Wrap(ByVal ExcelApplication As Excel.Application)
    If ExcelApp Is Nothing Then
        Set ExcelApp = ExcelApplication
    End If
End Sub

Private Sub Class_Terminate()
    If Not ExcelApp Is Nothing Then
        Set ExcelApp = Nothing
    End If
End Sub

Private Sub ExcelApp_WorkbookActivate(ByVal wb As Workbook)
    If wb Is ThisWorkbook Then
        KhoiDong False
    Else
        KhoiDong True
    End If
End Sub
Tạo 1 Module và thêm code sau vào Module vừa thêm này.
Mã:
Option Explicit

Public App As clsExcelA
Sub Auto_Open()
    Set App = New clsExcelA
    App.Wrap Application
    KhoiDong False
End Sub
Sub Auto_Close()
    Set App = Nothing
    KhoiDong True
End Sub

Public Sub KhoiDong(kt As Boolean)
    Application.CellDragAndDrop = kt
    ActiveWindow.DisplayWorkbookTabs = kt
End Sub
Lưu file xong đóng file và mở lại xem kết quả thế nào?
Dạ chưa được anh ạ!
Khi em mở 2 workbook cùng lúc thì khi click sang workbook khác thì nó vẫn khóa drop chứ không mở Drop ra ạ!
Em gửi file đính kèm, không biết em làm vậy có đúng chưa, mong anh giúp thêm ạ!
 

File đính kèm

  • Test Drop.xlsm
    15.2 KB · Đọc: 4
Upvote 0
Dạ chưa được anh ạ!
Khi em mở 2 workbook cùng lúc thì khi click sang workbook khác thì nó vẫn khóa drop chứ không mở Drop ra ạ!
Em gửi file đính kèm, không biết em làm vậy có đúng chưa, mong anh giúp thêm ạ!
Code trong ClassModule của bạn bị thiếu End Sub bạn tự kiểm tra lại nhé.
 
Upvote 0
Web KT

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

Back
Top Bottom