es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Extrayendo dos números de una celda y luego sumándolos juntos.

Estoy intentando trabajar en una macro de VBA que extraiga dos números de una celda y luego los sume. La hoja de cálculo en la que estoy trabajando tiene un campo así:

Celda D1: .60 #2021-71; 0.90 #2021-71

Necesito extraer el .60 y el .90, sumarlos y volver a colocarlos en la celda.

Para referencia, hay otras celdas en esta columna que son así:

Celda D2: .70 #2021-71

Tengo un código que ya está buscando en la columna y eliminando todo a partir del signo #:

Dim tmp As String
For Each cell In Range(“D:M”)
If InStr(cell.Value, “#”) > 0 Then
tmp = cell.Value
cell.Value = Left(tmp, InStr(tmp, “#”) – 1)
End If
Next cell

¿Es posible hacer lo que estoy intentando hacer?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible extraer dos números de una celda y sumarlos utilizando VBA en Excel. Puedes modificar el código existente para lograr esto utilizando la función Split para dividir el valor de la celda en base al delimitador de punto y coma y luego dividir los valores resultantes en base al delimitador de numeral para obtener los dos números. Aquí tienes un ejemplo de cómo puedes modificar el código:

    Dim tmp As String
    For Each cell In Range("D:M")
        If InStr(cell.Value, "#") > 0 Then
            tmp = cell.Value
            Dim values() As String
            values = Split(tmp, ";")
            Dim num1 As Double
            Dim num2 As Double
            num1 = CDbl(Split(values(0), "#")(0))
            num2 = CDbl(Split(values(1), "#")(0))
            cell.Value = num1 + num2
        End If
    Next cell
    

    Este código iterará a través de cada celda en el rango D:M y verificará si contiene el delimitador de numeral. Si lo hace, dividirá el valor de la celda en base al delimitador de punto y coma para obtener dos valores. Luego, dividirá cada uno de estos valores en base al delimitador de numeral para obtener los dos números. Finalmente, sumará estos dos números y colocará el resultado nuevamente en la celda.

Comments are closed.