Maaaring baguhin ang laso ng Excel upang umangkop sa isang partikular na trabaho. Lumilikha ang ehersisyo na ito ng mga bagong menu na tumuturo sa mga gumagamit sa mga tukoy na sheet na nauugnay sa kanilang gawain.
Sa artikulong ito, ipakikilala namin kung paano lumikha ng mga naka-customize na menu sa iyong worksheet ng Excel, tulad nito:
Ipinapalagay ng artikulong ito na ang mambabasa ay ipinapakita ang Developer ribbon at pamilyar sa VBA Editor. Kung hindi, mangyaring Google "Excel Developer Tab" o "Excel Code Window".
Workbook
Ang workbook na gagamitin ay may isang bilang ng mga sheet. Iminumungkahi naming gamitin mo ang sample na nahanap dito. Parang ganito.
Ang unang apat na sheet ay hindi gumagana, ginagamit sa pagsasanay na ito para sa mga layunin sa pag-navigate lamang.
Ang pang-limang sheet ay magtataglay ng na-customize na istraktura ng menu na partikular sa workbook na ito. Sa kasalukuyan dapat itong blangko maliban sa isang pindutan ng Pagsubok.
Idagdag ang istraktura ng Menu
Kopyahin ang sumusunod na bloke ng teksto sa cell A1 ng sheet na "MenuSheet".
Antas, Caption, Posisyon / Macro, Divider
1, at Mga Tool ng Gumagamit, 10
2, Ipakita ang Dashboard, SelectDashboard
2, Magdagdag ng bago,, TOTOO
3, Client, SelectClient
3, Lokasyon, Piliin ang Lokasyon
3, Manager, SelectManager
2, Close, CloseFile
I-format ang istraktura ng Menu
Ang data ng CSV na ito ay nagtatapos sa haligi A. Upang mai-format ito sa mga indibidwal na Excel cell, piliin ang haligi A at paggamit 'I-text sa mga haligi' nasa Tab ng data. Ang magbabawas ay magiging "kuwit".
Ang nasa itaas, sa sandaling naidagdag na namin ang naaangkop na code, ay magbibigay sa amin ng antas sa antas na istraktura ng menu sa kaliwa.
Ang unang antas, sa pagsasanay na ito, ay arbitraryong inilalagay bilang ikasampung aytem sa menu bar, gaya ng makikita mo kapag ipinakita ang buong lapad ng workbook.
Paglikha at Pagwawasak sa Mga Menu
Dahil nais lamang namin ang mga bagong menu para sa tukoy na workbook na ito, lilikha at sisirain namin sila sa pagbubukas at pagsara ng workbook.
Ang code sa ibaba ay isang panimula. Ito ay gagana kapag ang workbook ay binuksan o isinara. Kopyahin ito sa isang module sa iyong workbook.
Italaga ang pindutan ng Pagsubok sa MenuSheet sa Auto_Open.
Option Explicit Sub auto_Open() Call DeleteMenu Call CreateMenu End Sub Sub auto_Close() Call DeleteMenu End Sub
Sa ibaba, sinusuri namin ang istraktura ng aming menu nang mas malapit.
Walang macro na na-trigger ng Magdagdag ng Bagong sapagkat wala itong pagpapaandar bukod sa bilang magulang ng mga sub-menu.
Ang ganitong uri ng istraktura ng menu ay madaling mapanatili. Magdagdag lamang ng mga bagong item sa kanilang mga macros, na may malay sa Antas ng menu.
Ang Kodigo
Idagdag ang sumusunod na VBA code sa modyul. Susuriin nito ang "MenuSheet" at lilikha ng na-customize na menu.
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
Subukan ang code gamit ang pindutan ng Pagsubok. Ang bagong nilikha na menu ng gumagamit ay matatagpuan sa posisyon ng menu 10, sa ilalim ng Mga Add-in.
Pag-recover sa Excel
Ang Excel ay hindi matatag sa mga oras, at nag-crash habang bukas, na nakakasira sa pinagmulan ng file. Kung saan nabigo itong makuha ang file, kapaki-pakinabang na magkaroon ng isang tool upang maayos Pinsala sa Excel kung hindi, mawawala ang lahat ng hindi na-backup na trabaho.
Panimula ng May-akda:
Si Felix Hooker ay isang dalubhasa sa pagbawi ng data sa DataNumen, Inc., na pinuno ng mundo sa mga teknolohiya sa pagbawi ng data, kasama ang pagkukumpuni ng rar at mga produkto ng software sa pag-recover ng sql. Para sa karagdagang impormasyon pagbisita www.datanumen. Sa



