Den här snabbguiden förklarar processen för att lägga till kod i Excel VBA-bibliotek med Python. Den har detaljer för att ställa in IDE för utveckling, en lista med steg som definierar programmeringsuppgifterna och en exempelkod som visar hur man Excel makrobibliotek med Python. Du kommer att lära dig att komma åt VBA-biblioteket och lägga till moduler/koder enligt kraven.
Steg för att lägga till Excel VBA-källkodsbibliotek med Python
- Ställ in IDE att använda Aspose.Cells för Python via Java för att uppdatera VBA-biblioteket
- Skapa ett Workbook-objekt, öppna ett arbetsblad och lägg till ett nytt module
- Gå till den nyskapade modulen med det returnerade indexet medan du skapar modulen
- Ställ in namnet på modulen
- Ställ in kod för modulen
- Spara den resulterande Excel-filen som XLSM
Dessa steg sammanfattar processen för att åtkomst till VBA-kodbibliotek med Python och lägga till moduler. Börja processen genom att skapa eller ladda en arbetsbok, välja ett kalkylblad och lägga till en modul och kod till VBA-projektet. Slutligen, ställ in namn och koder i den nyskapade modulen och spara XLSM-filen på disken.
Kod för att uppdatera VBA-kodbibliotek med Python
import jpype | |
import asposecells as cells | |
jpype.startJVM() | |
from asposecells.api import License, Workbook, SaveFormat | |
# Instantiate a license | |
license = License() | |
license.setLicense("License.lic") | |
# Create a workbook | |
wb = Workbook() | |
# Select a sheet | |
ws = wb.getWorksheets().get(0) | |
# Add VBA Module and get its reference | |
idx = wb.getVbaProject().getModules().add(ws) | |
module = wb.getVbaProject().getModules().get(idx) | |
# Assign a name to the module | |
module.setName("SetGreenEven") | |
# Set code for the module | |
module.setCodes(""" | |
Private Sub Worksheet_Change(ByVal Target As Range) | |
Dim ws As Worksheet | |
Dim cell As Range | |
' Set the active sheet | |
Set ws = ActiveSheet | |
' Check if the changed cells have even numeric values | |
For Each cell In Target | |
If IsNumeric(cell.Value) And cell.Value Mod 2 = 0 Then | |
' Set the background color to green | |
cell.Interior.Color = RGB(0, 255, 0) ' RGB for green | |
Else | |
' If the value is not even, reset the background color to default (optional) | |
cell.Interior.ColorIndex = xlNone | |
End If | |
Next cell | |
End Sub | |
""") | |
# Save the output | |
wb.save("sampleWithMacro.xlsm", SaveFormat.XLSM) | |
print("VBA Module with code added successfully!!!") |
Den här exempelkoden visar processen för att lägga till en modul med kod i Excel VBA-kodbiblioteket med Python. Detta exempel på VBA-koden ändrar bakgrundsfärgen för varje cell till grön när du anger ett jämnt tal i cellen. Du kan ställa in Vba-modultypen på PROCEDURAL, DOCUMENT, CLASS eller DESIGNER.
Den här artikeln har behandlat processen att lägga till makro till en Excel-fil. Om du vill ta bort skyddet för en Excel-fil, se artikeln om Hur man tar bort skyddet av Excel i Python.