Estoy buscando una manera de usar el tipo de datos Decimal en una hoja de cálculo de Excel. Estoy almacenando información de enrutamiento como un número. Las rutas podrían consistir en 10 movimientos a 50 ubicaciones diferentes. Esto funciona bien en VBA usando el tipo de datos decimales, pero no puedo hacer que Excel acepte estos números una vez que se pasa de VBA.
Parece que el tipo de datos predeterminado es Doble, que no tiene suficiente precisión para mi aplicación. Además, una representación de cadena de un número no será suficiente ya que me estoy retirando del número en la hoja de trabajo.
Esto es lo que tengo hasta ahora para generar la Ruta #:
'generate route# for each row
For i = intFirstRow To intLastRow
'initiate route#
decRoute = CDec(dblInitialRoute)
For j = 1 To 7
'only assign if labor
If arrLabor(i, j, 1) <> 0 And arrLabor(i, j, 1) <> "" Then
'some stations could lead to multiple machines
If arrLabor(i, j, 2) = 1 Then
sglRandom = Rnd()
If sglRandom < 0.8 Then
intValue = 1
Else
intValue = 3
End If
decRoute = decRoute + intValue * (50 ^ ((decRoute - Int(decRoute)) * 100)) - 0.01
ElseIf arrLabor(i, j, 2) = 10 Then
sglRandom = Rnd()
intValue = Int((sglRandom * 1000) / (1000 / 20)) + 10
Debug.Print intValue
decRoute = decRoute + intValue * (50 ^ ((decRoute - Int(decRoute)) * 100)) - 0.01
Else
intValue = arrLabor(i, j, 2)
decRoute = decRoute + intValue * (50 ^ ((decRoute - Int(decRoute)) * 100)) - 0.01
End If
End If
'exception
If arrLabor(i, j, 1) = "" And j = 2 Then
intValue = 44
decRoute = decRoute + intValue * (50 ^ ((decRoute - Int(decRoute)) * 100)) - 0.01
End If
Next
'write route#
Debug.Print CDec(Int(decRoute) + dblInitialRoute)
wsActive.Cells(i, intRouteCol).Value = CDec(Int(decRoute) + dblInitialRoute)
Next