VBA-ээр дамжуулан Excel-ийн ажлын хуудсандаа тохируулсан цэсийг хэрхэн үүсгэх вэ?

Одоо хуваалцах:

Excel туузыг тодорхой ажилд тохируулан өөрчилж болно. Энэхүү дасгал нь хэрэглэгчдэд даалгавартай нь холбоотой тодорхой хуудсыг зааж өгөх шинэ цэсүүдийг бий болгодог.

Энэ нийтлэлд бид таны Excel-ийн ажлын хуудсанд өөрчилсөн цэсийг хэрхэн үүсгэх талаар танилцуулах болно.Excel-ийн ажлын хуудсандаа өөрчилсөн цэс үүсгэх

Энэ нийтлэл нь уншигчдад Developer туузыг харуулсан бөгөөд VBA редакторыг сайн мэддэг гэж үзнэ. Хэрэв үгүй ​​бол Google-ийн “Excel Developer Tab” эсвэл “Excel Code Window” -ийг ашиглана уу.

Дасгалын ном

Ашиглах ажлын ном хэд хэдэн хуудастай байна. Эндээс авсан түүврийг ашиглахыг бид танд зөвлөж байна. Энэ харагдаж байна.Жишээний ажлын дэвтэр

Эхний дөрвөн хуудас нь функциональ бус тул энэ дасгалд зөвхөн навигацийн зорилгоор ашигладаг.

Тав дахь хуудсанд энэ дасгалын дэвтэрт тохируулсан цэсний бүтцийг агуулна. Одоогийн байдлаар энэ нь Туршилтын товчлуураас бусад тохиолдолд хоосон байна.

Цэсийн бүтцийг нэмэх

Дараах текстийг “MenuSheet” хуудасны А1 нүдэнд хуулж ав.

Түвшин, тайлбар, байр суурь / макро, хуваагч

1, & Хэрэглэгчийн хэрэгсэл, 10

2, Show Dashboard, SelectDashboard

2, Шинэ нэмэх,, ҮНЭН

3, Client, SelectClient

3, Байршил, SelectLocation

3, Менежер, SelectManager

2, Close, CloseFile

Цэсийн бүтцийг форматлах

Энэхүү CSV өгөгдөл нь А баганад төгсөж Excel-ийн нүднүүд болгон форматлахын тулд А баганыг сонгоод ашиглана уу 'Багана руу текст' дахь Мэдээллийн таб. Тусгаарлагч нь "таслал" байх болно.Үүнийг Excel-ийн бие даасан нүдэнд форматлана уу

Дээрх зүйлүүд нь тохирох кодыг нэмж оруулсны дараа зүүн талд байрлах түвшний цэсийн бүтцийг өгөх болно.Түвшинд суурилсан цэсийн бүтэц

Энэ дасгалын эхний түвшинг цэсний мөрөнд арав дахь зүйл болгон дур мэдэн байрлуулсан бөгөөд үүнийг ажлын дэвтрийн бүтэн өргөнийг харуулахад та харах болно.

Цэс үүсгэх, устгах

Бид зөвхөн энэ тодорхой ажлын дэвтэрт зориулсан шинэ цэсүүдийг авахыг хүсдэг тул ажлын номыг нээх, хаах үед тэдгээрийг үүсгэж устгах болно.

Доорх код нь эхлэл юм. Энэ нь ажлын дэвтэр нээгдэх эсвэл хаагдах үед идэвхжих болно. Үүнийг ажлын дэвтэр дэх модуль руу хуулж оруулна уу

MenuSheet дээрх Test товчийг Auto_Open-д оноож өг.

Option Explicit

Sub auto_Open()
    Call DeleteMenu
    Call CreateMenu
 End Sub
 
Sub auto_Close()
    Call DeleteMenu
End Sub

Доор бид цэсийнхээ бүтцийг илүү нарийвчлан судалж үзээрэй.Манай цэсний бүтцийг илүү нарийвчлан шалгана уу

Ямар ч макро өдөөгддөггүй Шинэ нэмнэ Учир нь энэ нь дэд цэсийн эцэг эхээс өөр функцгүй юм.

Энэ төрлийн цэсний бүтцийг хадгалахад хялбар байдаг. Түвшингийн түвшинг ухамсарлаж, шинэ зүйлээ макро дээрээ нэмж оруулаарай.

Дүрэм

Дараахь VBA кодыг модульд хавсаргана уу. Энэ нь "MenuSheet" -ийг шалгаж, тохируулсан цэсийг үүсгэх болно.

Sub CreateMenu()
'   Called from Auto_Open. 'NOTE: There is no error handling in this subroutine
    Dim MenuSheet As Worksheet
    Dim MenuObject As CommandBarPopup

    Dim MenuItem As Object
    Dim SubMenuItem As CommandBarButton
    Dim sRow As Integer
    Dim MenuLevel, NextLevel, PositionOrMacro, Caption, Divider

    Set MenuSheet = ThisWorkbook.Sheets("MenuSheet")
    Call DeleteMenu

    sRow = 2 '   start row
    
'   Add menus using the structure as per the MenuSheet
    Range("A" & sRow).Select
    Do While ActiveCell > "" '****************
        With MenuSheet
            MenuLevel = .Cells(sRow, 1)
            Caption = .Cells(sRow, 2)
            PositionOrMacro = .Cells(sRow, 3)
            Divider = .Cells(sRow, 4)
            NextLevel = .Cells(sRow + 1, 1)
        End With
        
        Select Case MenuLevel
            Case 1 ' Add the top-level menu to the Worksheet CommandBar
                Set MenuObject = Application.CommandBars(1). _
                    Controls.Add(Type:=msoControlPopup, _
                    Before:=PositionOrMacro, _
                    Temporary:=True)
                MenuObject.Caption = Caption
            Case 2 ' A Menu Item
                If NextLevel = 3 Then
                    Set MenuItem = MenuObject.Controls.Add(Type:=msoControlPopup)
                Else
                    Set MenuItem = MenuObject.Controls.Add(Type:=msoControlButton)
                    MenuItem.OnAction = PositionOrMacro
                End If
                MenuItem.Caption = Caption
                If Divider Then MenuItem.BeginGroup = True
            Case 3 ' A SubMenu Item
                Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
                SubMenuItem.Caption = Caption
                SubMenuItem.OnAction = PositionOrMacro
                
                If Divider Then SubMenuItem.BeginGroup = True
        End Select
        sRow = sRow + 1
        Range("A" & sRow).Select '***************************************
    Loop
    Sheets("Dashboard").Activate
End Sub

Sub DeleteMenu()
'   This sub will be executed when the workbook is closing
    Dim MenuSheet As Worksheet
    Dim sRow As Integer
    Dim Caption As String
    
    On Error Resume Next
    Set MenuSheet = ThisWorkbook.Sheets("MenuSheet")
    sRow = 2
    Range("A" & sRow).Select
    Do While ActiveCell > ""
        If MenuSheet.Cells(sRow, 1) = 1 Then
            Caption = MenuSheet.Cells(sRow, 2)
            Application.CommandBars(1).Controls(Caption).Delete
        End If
        sRow = sRow + 1
        Range("A" & sRow).Select
    Loop
   
    On Error GoTo 0
End Sub

Sub SelectDashboard()
    Sheets("Dashboard").Activate
End Sub
Sub SelectClient()
    Sheets("Client").Activate
End Sub

Sub SelectLocation()
    Sheets("Location").Activate
End Sub

Sub SelectManager()
    Sheets("Manager").Activate
End Sub

Sub CloseFile()
    MsgBox "Close! (write your own code in the module)"
End Sub

Туршилтын товчлуур дээр кодыг туршиж үзээрэй. Шинээр үүсгэсэн хэрэглэгчийн цэсийг цэсийн 10-р байрлалаас Нэмэгдлүүдээс олох болно.

Excel сэргээх

Excel нь заримдаа тогтворгүй байдаг бөгөөд нээгдэх үед унаж, эх файлыг гэмтээж байдаг. Файлыг сэргээж чадахгүй тохиолдолд засах хэрэгсэлтэй байх нь ашигтай байдаг Excel-ийн гэмтэл эс тэгвээс бүх нөөцлөгдөөгүй ажил алдагдах болно.

Зохиогчийн танилцуулга:

Феликс Хүүкер бол мэдээлэл сэргээх мэргэжилтэн юм DataNumen, Үүнд мэдээлэл сэргээх технологиор дэлхийд тэргүүлэгч, Inc. rar файлыг засварлах болон sql сэргээх програм хангамжийн бүтээгдэхүүнүүд. Дэлгэрэнгүй мэдээллийг авна уу WWW.datanumen.com

Одоо хуваалцах:

Тайлбарууд нь хаалттай байна.