VB puede calcular fórmulas basadas en texto
Requisitos previos:
1. Usar vb6.NET Framework 3.0.
0
2. La fórmula sigue el formato que usted proporcionó: una fórmula por línea, cada variable está en letras mayúsculas simples, no hay espacios en el medio y otros símbolos que no sean de operación.
3. Por conveniencia, se utiliza un cuadro de texto en lugar de un archivo de texto. Puede cambiarlo usted mismo
4. debe ingresarse en el cuadro de texto, es decir, Text1.MultiLine?MultiLine?= ?True
Aquí está el código fuente: Option?Explicit
Dim?)?As?Long? 'Se usa para almacenar los resultados de los cálculos, todo en letras mayúsculas del código ASCII, si necesita almacenarlo
Dim?weizhi?As?Long?'Se usa para registrar la posición actual de la fórmula en el texto
Dim?s?As?String? 'Se utiliza para almacenar el texto, que se puede leer desde un archivo y, en este caso, para facilitar la depuración, se utiliza el contenido de text1
¿Privado?Función de declaración EbExecuteLine Lib?"vba6. dll"?(? _
ByVal?_
ByVal?Unknownn1?As?Long,? _
¿ByVal?Unknownnn2?As?Long,?_
ByVal?fCheckOnly?As?Long)?As?Long
Función?StepLine(ByVal? cmd?As?String)?As?Long
StepLine ?cmd),?0,?0,?0)
Fin de función
Privado?Sub ?Form_Load()
weizhi?=?1 p>
Dim?i?As?Long
For?i?=??' carácter que desee. Puede asignar un valor según sea necesario
zifu(i)? = ?i?-?64
Siguiente?i
Fin? Sub
¿Privado?Sub?Command1_Click()?Ejecutar cálculo
Dim?tem?As?String?'¿Se utiliza para almacenar una fila de fórmulas
s? =?Text1.Text?'Cadena de inicialización, puedes leer el archivo en su lugar
Hacer
tem?=?qugongshi?'Extraer una fila de fórmula
If? tem?<>?"" Entonces
jisuan?(tem)?Calcular la fórmula de la fila Fórmula
Else
MsgBox?"La fórmula ha sido calculado! "
¿Salir? ¿
Fin? Si
Bucle
weizhi?=?1
¿Fin? Sub
¿Pública?Función?qugongshi()?As?Cadena?Extraer una fila de fórmulas
Dim?s1?As?Long,?s2?As?Long
s1?=?weizhi
Si?weizhi?>=?Len(s)?Entonces
qugongshi?
Salir de la función
¿Fin?Si
s2?=?En
Str(s1,?s,?Chr(13))
qugongshi?=?Mid(s,?s1,?s2?-?s1)
weizhi?=?s2 ?+?2
Weizhi?=?s2?
Función final
¿Pública?Sub?jisuan(gongshi?As?String)?Según un determinado línea de fórmula Resultado del cálculo, el parámetro es una línea de fórmula
On?Error?GoTo?ErrorHandler
Dim?i?As?Long,?n?As?Long,? m?As?String
m?=?"" ?' m se utiliza para registrar los resultados del cálculo, es decir =
For?i?=?3?To?Len( gongshi) ?' pondrá en mayúscula las variables Reemplace con variables en minúsculas. Usar=
n?=?Asc(Mid(gongshi,?i,?1))
Si?n?>=?65?Y?n?<=?90 Entonces
m?=?m?&?zifu(n)
Else
m?=?m?&?Mid(gongshi,?i, ?1)
¿Fin?Si
Siguiente?i
Imprimir?m
Línea de paso?"Dim?a?as?long "
StepLine?"a ="? &?m
StepLine?"ClipBoard.SetText?a"
10:¿Error en los eventos?' Cuando está activado, puede haber demasiados bucles. Si encuentra este tipo de secuelas, puede realizar varios bucles en esta línea de código sin necesidad de un controlador de errores
m?=?Clipboard. .GetText
Imprimir?Left(gongshi,?2)? &?m
zifu(Asc(Left(gongshi,?1))?=?Val(m)?if Si necesita dar el valor de la variable correspondiente en la matriz de variables, puede agregar aquí el código correspondiente para participar en las operaciones posteriores
Exit?Sub
ErrorHandler:'? Manejador de errores.
Si Err.Number = 521, vaya a 10
¿Fin?