Visual Basic Application ( VBA ) är det programmeringsspråk som Excel införlivar i sin Macro redaktör . Den VBE ( Visual Basic Editor ) Makro editor i Microsoft Excel tillåter användare att skriva enkla program som automatiserar redundanta arbetsuppgifter . Här kommer vi att skriva ett VBA -makro som kommer att duplicera data i ett kalkylblad , sortera det i en flerdimensionell array och skriva den till ett nytt arbetsblad . Denna process är användbar när en sorterad kalkylblad behövs , men den ursprungliga , osorterade kalkylblad måste förbli intakt . Instruktioner
1
Launch Excel genom att klicka på "Start ", " Microsoft Office Suite , " " Excel ".
2
Starta Visual Basic Editor ( VBE ) genom att trycka på " ALT " och " F11 " samtidigt .
3
Skriv processen för att kopiera ett kalkylblad i en flerdimensionell array . Välj följande kod och kopiera den till VBE :
Sub Read_Into_Array ( ) katalog
Dim arrData ( ) As Variant
Dim ColACount As Long
Dim jag As Long
ColACount = Range ( Range ( " A1 " ) , Range ( " A " & Rows.Count ) . End ( xlUp ) ) . Räkna
ReDim arrData ( 1 till ColACount , 1 till 2 ) katalog
För i = 1 till ColACount
arrData (i , 1 ) = Range ( " A " & i) . Value
arrData ( i , 2 ) = Range ( " B " & i) . Value
Nästa jag
End Sub
4
Sortera arrayen med VBA Bubble Sort processen. Kopiera och klistra in följande kod nedanför koden från föregående steg . Det kommer att sortera den tvådimensionella matrisen :
Sub Sort_Array ( ) katalog
SortColumm1 = 0
SortColumn2 = 3 bilder
För i = LBound ( ArrayName , 1 ) Till UBound ( ArrayName , 1 ) - 1
för j = LBound ( ArrData , 1 ) Till UBound ( ArrData , 1 ) - 1
condition1 = ArrData ( j , SortColumn1 ) > ArrData ( j + 1 , SortColumn1 ) katalog
condition2 = ArrData ( j , SortColumn1 ) = ArrData ( j + 1 , SortColumn1 ) och _
ArrData ( j , SortColumn2 ) > ArrData ( j + 1 , SortColumn2 ) katalog p Om condition1 eller condition2 sedan
För y = LBound ( ArrData , 2 ) Till UBound ( ArrData , 2 ) katalog
t = ArrData ( j , y ) katalog
ArrData (j, y) = ArrData ( j + 1 , y ) katalog
ArrayName ( j + 1 , y) = t
Nästa y
End If
Nästa
Nästa
End Sub
5
Skapa nya kalkylblad som innehåller de sorterade data. Kopiera och klistra in följande kod nedanför koden anges hittills :
Sub New_Worksheet ( ) katalog
Dim WS som Arbetsblad
Set WS = Sheets.Add
End Sub
6
Kopiera arrayen till den nya kalkylbladet . Kopiera och klistra in följande kod nedanför koden skapade ovan :
Sub Copy_Array ( ) katalog
[ a1 ] Ändra storlek ( UBound ( MyArr ) , UBound ( Application.Transpose ( MyArr ) ) ) = . MyArr
End Sub
7
spara makrot . Klicka på " File ", " Spara ", ge den ett namn och klicka på " Spara ".
8
köra makrot . Öppna ett kalkylblad som du vill kopiera och sortera . Klicka på " Verktyg ", " Makron ", markera det makro du nyss skapade . Den nya kalkylbladet visas och befolkar automatiskt . Addera