Add in SwitchSheet: Quay lại các sheet đã xem trước đó bằng phím tắt

Liên hệ QC
Hiện em cũng bị:
- Chỉ hoạt động trong lần đầu, các lần sau phải chọn lại addin dù đã để đúng trong thư mục addin của excel.
- Trong excel 2016 chỉ dùng được với "Ctrl+q", sửa code lại Altkey nhưng vẫn không được, Alt+Q vẫn là cửa sổ "Tell me what you want..." của excel! Tại vì phiên bản trước đó đã dùng quen với Alt+Q (trong excel 2010) nên dù bây giờ dùng excel 2016 rất muốn vẫn là Alt+Q.
Rất mong tác giả tiếp tục hoàn thiện addin này, hỗ trợ người dùng.
 
Hiện em cũng bị:
- Chỉ hoạt động trong lần đầu, các lần sau phải chọn lại addin dù đã để đúng trong thư mục addin của excel.
- Trong excel 2016 chỉ dùng được với "Ctrl+q", sửa code lại Altkey nhưng vẫn không được, Alt+Q vẫn là cửa sổ "Tell me what you want..." của excel! Tại vì phiên bản trước đó đã dùng quen với Alt+Q (trong excel 2010) nên dù bây giờ dùng excel 2016 rất muốn vẫn là Alt+Q.
Rất mong tác giả tiếp tục hoàn thiện addin này, hỗ trợ người dùng.
Một số trường hợp add in không thể chiếm quyền kiểm soát shortcut key của windows. Còn chuyện add in không load thì code đã có các bạn tự mình nghiên cứu nhé.
 
Add-in của bác hay quá!
Em có thêm đề nghị nữa là Bác viết thêm VBA để có thể chuyển đổi giữa các sheet mà không cần "lịch sử", nghĩa là mở file là mình có thể dùng phím tắt để chuyển luôn (có hiện ra cái bảng như của bác). Em rất khoái cái bảng vì nó trực quan hơn nhìn xuống tên các sheet.
Cảm ơn bác chủ lần nữa!
 
Bạn sử dụng file này. Nếu muốn thay đổi phím tắt thì thay đổi các dòng khai báo đầu trong module M01 theo hướng dẫn được ghi chú trong code.
ANh ơi em có ý kiến như thế này được ko ạ
Em làm được như anh hướng dẫn thay đổi phím tắt thành ctrl + q rồi. CHuyển được tab rồi, nhưng em có thể muốn thếm chức năng đó là khi bấm giữ phim ctrl và bấm thêm Q các lần tiếp theo nữa thì các sheet chọn sẽ di chuyển xuống sheet tiếp theo mà ko bị lỗi. hoặc nhẫn giữ phím ctrl mà vô tình bấm phải phím khác mà ko bị lỗi như hình này
 

File đính kèm

  • Untitled.jpg
    Untitled.jpg
    349.2 KB · Đọc: 18
Lần chỉnh sửa cuối:
ANh ơi em có ý kiến như thế này được ko ạ
Em làm được như anh hướng dẫn thay đổi phím tắt thành ctrl + q rồi. CHuyển được tab rồi, nhưng em có thể muốn thếm chức năng đó là khi bấm giữ phim ctrl và bấm thêm Q các lần tiếp theo nữa thì các sheet chọn sẽ di chuyển xuống sheet tiếp theo mà ko bị lỗi. hoặc nhẫn giữ phím ctrl mà vô tình bấm phải phím khác mà ko bị lỗi như hình này
Bạn vào Tools - Reference bỏ chọn mục MISSING... rồi save lại.
 
Dạ cám ơn anh
EM làm được rồi hihi.
GIờ em đang tìm kiếm addin gộp file excel nếu anh có cho chỉ em với đc ko ạ
Bạn xem thử topic này
 
Tôi nghĩ đa số những người dùng máy tính thường xuyên sử dụng phím tắt Alt + Tab để mở lại cửa sổ gần nhất vì nó rất tiện lợi. Tuy nhiên, trên Excel khi ta muốn xem lại sheet vừa xem thì phải tìm và chọn. Đối với những file có nhiều sheet thì rất mất thời gian. Vì vậy, tôi tạo ra Addin này.

Công dụng duy nhất: Mở lại các Sheet đã mở gần nhất bằng phím tắt Alt + q (tôi chọn phím q vì phím q gần với phím tab, các bạn có thể sửa lại trong code)

Hy vọng Addin này sẽ giúp tiết kiệm thời gian cho những người thường xuyên làm việc trên Excel.
Chào anh, em tải add in về thì khi mở ứng dụng bằng phím tắt "ctrl + q" thì hiện lên bảng và không tác động được, anh xem, giúp em
Em có đính kèm link video:
11111.png
 
Lần chỉnh sửa cuối:
Bạn sử dụng file này. Nếu muốn thay đổi phím tắt thì thay đổi các dòng khai báo đầu trong module M01 theo hướng dẫn được ghi chú trong code.
Anh ơi em nhờ anh chút xíu ạ! anh chuyển giúp em add-in đăng ở bài này sang đuôi dạng ".xlam" và phím tắt là (alt+a)
Máy em đuôi ".xla" mỗi lần sử dụng đều phải load lại add in từ đầu, lần trước có lần anh giúp em qua timeview và đổi lại đuôi add-in thành ".xlam" cho em, nhưng do máy em bị hư ổ cứng nên mất add - in anh đã giúp em.
Anh giúp em mới nhé!
Cám ơn anh!
 
chuyển sang dạng ".xlam" bằng cách nào vậy anh?
Bạn mở Addin lên. Vào môi trường VBE (Alt + F11), chọn module ThisWorkbook của SwitchSheet.xla, chỉnh property IsAddin thành False, quay lại môi trường Excel save as dạng .xlam.
Chỉnh phím tắt thì các bài trước tôi có nói rồi.
 
Bạn mở Addin lên. Vào môi trường VBE (Alt + F11), chọn module ThisWorkbook của SwitchSheet.xla, chỉnh property IsAddin thành False, quay lại môi trường Excel save as dạng .xlam.
Chỉnh phím tắt thì các bài trước tôi có nói rồi.
Em đã chuyển add in dạng ".xla" thành ".xlam" theo như anh nói
Nhưng khi đổi phím tắt thì em đổi thành phím tắt "Alt+a" nhưng không có tác dụng:
Em vào Module M01 đã làm như hướng dẫn: có hình ảnh đính kèm, anh xem giúp em có lỗi gì trong quá trình em làm không ạ!
anh sua.png
 

File đính kèm

Em đã chuyển add in dạng ".xla" thành ".xlam" theo như anh nói
Nhưng khi đổi phím tắt thì em đổi thành phím tắt "Alt+a" nhưng không có tác dụng:
Em vào Module M01 đã làm như hướng dẫn: có hình ảnh đính kèm, anh xem giúp em có lỗi gì trong quá trình em làm không ạ!
View attachment 223113
Không phải phím nào cũng dùng đặt làm phím tắt được đâu bạn.
 
Bạn thử cho tôi xem đoạn code bạn đặt phím tắt Alt + A thử xem
Dạ đây! anh xem giúp em ạ!
Mã:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Tac gia: Nguyen Huu Thang (huuthang_bd - giaiphapexcel.com)'
'http://www.giaiphapexcel.com/forum/showthread.php?81574    '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Public Const CtrlKey As Long = 17, AltKey As Long = 18
Public Const AltOrCtrl As Long = AltKey 'CtrlKey neu dung phim Ctrl - AltKey neu dung phim Alt
Public Const Key As String = "a" 'Thay doi theo nhu cau su dung
Public App As clsExcelApp
Private Sub Auto_Open()
Application.OnKey IIf(AltOrCtrl = AltKey, "^", "%") & "{" & Key & "}", "SwitchSheet"
Set App = New clsExcelApp
App.Wrap Application
End Sub
Private Sub Auto_Close()
Application.OnKey IIf(AltOrCtrl = AltKey, "^", "%") & "{" & Key & "}"
Set App = Nothing
End Sub
Private Sub SwitchSheet()
On Error Resume Next
Dim i As Long
For i = 0 To Frm_SheetsInfo.SwitchSheetLB.ListCount - 1
    If Frm_SheetsInfo.SwitchSheetLB.List(i, 0) = ActiveWorkbook.Name Then
        Dim j As Long, Array_Ordinal
        If InStr(1, Frm_SheetsInfo.SwitchSheetLB.List(i, 1) & "/", ActiveSheet.Name & "/", vbTextCompare) <> 1 Then
            Frm_SheetsInfo.SwitchSheetLB.List(i, 1) = Frm_SwitchSheet.Get_Sheets_Ordinal(ActiveWorkbook, Frm_SheetsInfo.SwitchSheetLB.List(i, 1))
        End If
        Array_Ordinal = Split(Frm_SheetsInfo.SwitchSheetLB.List(i, 1), "/")
        For j = LBound(Array_Ordinal, 1) To UBound(Array_Ordinal, 1)
            If ActiveWorkbook.Sheets(Array_Ordinal(j)) Is Nothing Then
                GoTo Next_j
            ElseIf ActiveWorkbook.Sheets(Array_Ordinal(j)).Visible = xlSheetVisible Then
                Frm_SwitchSheet.LB_Sheets.AddItem Array_Ordinal(j)
            End If
Next_j:
        Next
        If Frm_SwitchSheet.LB_Sheets.ListCount > 1 Then
            Frm_SwitchSheet.LB_Sheets.ListIndex = 1
            If Frm_SwitchSheet.LB_Sheets.ListCount < 12 Then
                Frm_SwitchSheet.LB_Sheets.Height = 2 + Frm_SwitchSheet.LB_Sheets.ListCount * 10
                Frm_SwitchSheet.Height = 21.75 + Frm_SwitchSheet.LB_Sheets.ListCount * 10
            End If
            Frm_SwitchSheet.Show
        Else
            Unload Frm_SwitchSheet
            Frm_SwitchSheet.LB_Sheets.ListIndex = j
            If Frm_SwitchSheet.LB_Sheets.ListCount > 1 Then
                If Frm_SwitchSheet.LB_Sheets.ListCount < 12 Then
                    Frm_SwitchSheet.LB_Sheets.Height = 2 + Frm_SwitchSheet.LB_Sheets.ListCount * 10
                    Frm_SwitchSheet.Height = 21.75 + Frm_SwitchSheet.LB_Sheets.ListCount * 10
                End If
                Frm_SwitchSheet.Show
            Else
                Unload Frm_SwitchSheet
            End If
        End If
        Exit Sub
    End If
Next
End Sub
 
Tôi nói code bạn đặt được phím tắt Alt + A chứ bạn làm không được thì đưa code này lên làm gì.
 
1. Máy tôi win 32 bit nên không biết khai báo thiếu biến sẽ lỗi trên win 64 bit.
2. Tôi viết dòng đó là có lý do, không thừa đâu. Bản tôi úp lên tôi sẽ không sửa. Bạn thích sửa thì bạn cứ sửa nhé.
Split("/Sheet1/", "/") khác với Split("Sheet1", "/") nhé. Kết quả không khác nhau do tôi đã có lệnh kiểm tra sự tồn tại của sheet bên dưới nhưng không lý do gì bắt máy tính làm việc nhiều hơn khi kết quả như nhau.
3. Về vấn đề password, tôi chẳng hiểu các bạn làm gì mà bảo password sai. Tôi sẽ úp bản không khóa lên nhưng các bạn cứ xem clip này xem tôi có nói sai password không.
[video=youtube;39r6pGj3Z8I]
Em dùng excel 2019 32b, khi load add in và dùng tổ hợp phím (Alt+Q) thì thấy hiện lên hình dưới mà không thể quay lại sheet trước đó, nhờ anh xem giúp.rt.png
 
Web KT

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

Back
Top Bottom