Skapa en ny modul med VBA i Microsoft Excel

Anonim

I den här artikeln kommer vi att skapa ett makro för att infoga en ny modul i en Excel -arbetsbok.

Innan vi kör makrot måste vi ange modulens typ och namn.

Som man kan se på skärmdumpen har vi bara en modul i arbetsboken. I det här exemplet lägger vi till klassmodulen i arbetsboken.

Logisk förklaring

I den här artikeln har vi skapat två makron, "CreateNewModule" och "CallingProcedure".

Makroet ”CreateNewModule” används för att lägga till en ny modul, beroende på den angivna ingången.

Makro ”CallingProcedure” används för att tillhandahålla inmatning och ringa till huvudmodulen.

Kodförklaring

Ange ModuleComponent = Wbook.VBProject.VBComponents.Add (ModuleTypeIndex)

Ovanstående kod används för att lägga till en ny modul i VBA -projektet.

ModuleComponent.Name = NewModuleName

Ovanstående kod används för att byta namn på den infogade komponenten.

ModuleTypeConst = Cint (Range ("D12"). Värde)

Ovanstående kod används för att få heltal från cell D12.

ModuleName = Sheet1.TextBox2.Value

Ovanstående kod används för att få värde från textrutan.

Följ koden nedan

 Alternativ Explicit Sub CreateNewModule (ByVal ModuleTypeIndex As Integer, ByVal NewModuleName As String) 'Declaring variables Dim ModuleComponent As VBComponent Dim WBook As Workbook' Creating object of active workbook Set WBook = ActiveWorkbook Set ModuleComponent = Nothing On Error Resume Next 'Adding module ModuleComponent = WBook.VBProject.VBComponents.Add (ModuleTypeIndex) If Not ModuleComponent Is Nothing Då 'Byt namn på den nya modulen ModuleComponent.Name = NewModuleName End If On Error GoTo 0 Set ModuleComponent = Nothing End Sub Subing CallingProcedure ()' Deklarera variabler Integer Dim ModuleName As String 'Hämtar värdet för modulnamn och modultyp ModuleTypeConst = CInt (Range ("D12"). Value) ModuleName = Sheet1.TextBox2.Value' Calling CreateNewModule CreateNewModule ModuleTypeConst, ModuleName End Sub Sub 

Om du gillade den här bloggen, dela den med dina vänner på Facebook. Du kan också följa oss på Twitter och Facebook.

Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen