Använda BIN2DEC i ett makro

July 27

De flesta av Excels kalkylbladsfunktioner kan nås i VBA med hjälp av WorksheetFunction objektet. Vissa funktioner kanske inte verkar vara tillgängliga, dock. En sådan funktion är BIN2DEC, som konverterar ett binärt värde till ett decimalt värde. Anledningen till att det inte är tillgängligt är att BIN2DEC är egentligen inte ett Excel-kalkylblad funktions det är en del av Analysis ToolPak-tillägg.

Så är fallet, har du två alternativ: du kan antingen ladda VBA motsvarighet till Analysis ToolPak, eller så kan du skapa din egen BIN2DEC funktionen i VBA. För att göra den första, se till att det i Excel du installerar Analysis ToolPak - VBA-tillägg. Om den inte finns med i de tillgängliga tillägg, använda Windows för att söka efter filen ATPVBAEN.XLA. (Om du använder en språkversion av Excel än engelska, sedan "SV" del av filen kommer att vara annorlunda.) Detta är den verkliga tillägget du vill aktivera.

När du har aktiverat tillägget, visa VBA Editor och välj Verktyg | Referenser att visa dialogrutan Referenser ruta. Se till att atpvbaen.xla referens är vald. Stäng dialogrutan, och du kan sedan använda BIN2DEC precis som du gör med andra kalkylbladsfunktionen.

Det andra alternativet är att skapa din egen BIN2DEC funktionen. Följande är ett exempel på en funktion som accepterar en sträng som innehåller de binära siffror och returnerar ett numeriskt värde som motsvarar det decimala värdet av den strängen.

Funktion Bin2Dec (sMyBin As String) As Long
Dim x As Integer
Dim Ilen As Integer

Ilen = Len (sMyBin) - 1
För x = 0 Till Ilen
Bin2Dec = Bin2Dec + _
Mid (sMyBin, Ilen - x + 1, 1) * 2 ^ x
Nästa
End Function

Denna funktion faktiskt inte har samma begränsningar som det kalkylbladsfunktionen BIN2DEC; det kommer att fungera med binära tal som innehåller mer än 10 siffror.

ExcelTips är din källa för kostnadseffektiv Microsoft Excel utbildning. Detta tips (3063) gäller för Microsoft Excel 97, 2000, 2002, och 2003.