VBA doble | Com es pot declarar el tipus de dades doble a VBA?

Excel VBA doble tipus de dades

Doble VBA és un tipus de tipus de dades que assignem per declarar variables, que és una versió millorada o més llarga de la variable de tipus de dades "Individual" i que s'utilitza normalment per emmagatzemar decimals més llargs.

El tipus de dades enter VBA sempre converteix els valors decimals al valor enter més proper, el tipus de dades únic pot mostrar fins a dos dígits de decimals. D'altra banda, el tipus de dades "Doble" pot emmagatzemar valors -1.79769313486231E308 a -4.94065645841247E324 per a valors negatius i per a nombres positius des dels quals pot emmagatzemar valors 4.94065645841247E-324 a 1.79769313486232E308.

Més important encara, consumeix 8 bytes de memòria.

Exemples per utilitzar VBA Double Data Type

Podeu descarregar aquesta plantilla VBA Double Excel aquí: plantilla VBA Double Excel

Exemple 1

Abans de veure l'exemple de tipus de dades "Doble", vegem els codis d'exemple de tipus de dades "Integer" i "Single" a VBA. Mireu el codi VBA següent.

Codi:

 Sub Integer_Ex () Dim k Com Enter k = 2.569999947164 MsgBox k End Sub 

He declarat la variable "k" com a enter i, per a aquesta variable, he assignat el valor com a 2.569999947164.

Executem aquest codi manualment o mitjançant la tecla de drecera Excel F5, per veure el valor final al quadre de missatges de VBA.

El resultat es mostra com a 3 en lloc del número proporcionat de 2.569999947164. El motiu perquè VBA ha convertit el número al valor enter més proper, és a dir, 3.

Quan el valor decimal sigui superior a 0,5, es convertirà al següent valor enter i, quan el valor decimal sigui inferior a 0,51, es convertirà al valor enter inferior.

Ara canviaré el tipus de dades de Enter a Single.

Codi:

 Sub Integer_Ex () Dim k As Single k = 2,569999947164 MsgBox k End Sub 

Executeu el codi mitjançant la tecla de drecera F5 i consulteu quin número obtenim aquesta vegada.

Aquesta vegada hem obtingut el resultat com a 2,57, de manera que aquesta vegada hem obtingut dos decimals. El valor original que hem assignat era 2,569999947164, de manera que, en aquest cas, tercer, el valor decimal col·locat és 9, de manera que, ja que és més de 5, ha convertit el valor decimal del segon lloc en 6.

Ara canvieu el tipus de dades de Individual a Doble.

Codi:

 Sub Integer_Ex () Dim k As Double k = 2,569999947164 MsgBox k End Sub 

Ara executeu el codi manualment i veureu quants dígits obtenim al resultat del quadre de missatges.

Aquesta vegada hem obtingut tots els valors decimals. Podem subministrar fins a 14 dígits de decimals en tipus de dades dobles.

Si proporcioneu qualsevol valor superior a 14 posicions decimals, es convertirà al valor més proper. Per obtenir un exemple, mireu la imatge següent.

He escrit 15 posicions decimals en lloc de 14, si premo la tecla Retorn, tornarà només a 14 dígits.

En lloc de 59 (dos darrers dígits), obtenim 6, és a dir, ja que l’últim dígit és 9, que és superior a 5, el número anterior 5 es converteix al següent valor enter, és a dir, 6

Exemple 2

Ara mostraré com treballar amb la referència de cel·la en un full de càlcul. A continuació es mostren els números que he introduït al full de treball.

Comencem a capturar els mateixos valors al següent fent servir ENTER tipus de dades, SOLTER tipus de dades i DOBLE tipus.

A continuació es mostra el codi per conservar els valors de la columna A a la B mitjançant el tipus de dades INTEGER.

Codi:

 Sub Double_Ex () Dim k Com enter Dim Dim CellValue As Integer for k = 1 to 6 CellValue = Cells (k, 1). Valour Cells (k, 2) .Value = CellValue Next k End Sub 

Executem el codi mitjançant la tecla de drecera F5, per veure quins valors obtenim a la columna B.

Quan hem utilitzat Integer com a tipus de dades, obtenim tots els nombres enters, és a dir, sense decimals.

Ara només canviaré el tipus de dades vba d'una variable de enter a Single.

Codi:

 Sub Double_Ex () Dim k Com enter Dim Dim CellValue As Single For k = 1 to 6 CellValue = Cells (k, 1). Valour Cells (k, 2) .Value = CellValue Next k End Sub 

Aquest codi donarà el resultat següent.

Aquesta vegada només hem obtingut dues xifres decimals.

Ara canvia el tipus de dades de simple a doble.

Codi:

 Sub Double_Ex () Dim k Com enter Dim Dim CellValue As Double for k = 1 to 6 CellValue = Cells (k, 1). Valour Cells (k, 2) .Value = CellValue Next k End Sub 

Això retornarà el resultat següent.

Tenim valors exactes de la columna A.

Coses que cal recordar

  • Double és un tipus de dades millorat de tipus de dades individuals.
  • Pot contenir fins a 14 xifres decimals.
  • Consumeix 8 bytes de memòria del sistema.