/ / ¿Cómo obtengo vba para agregar todas (y solo) celdas en una fila que están formateadas en una moneda (£ por especificidad)? - excel, vba, excel-vba

¿Cómo hago para que vba agregue todas (y solo) celdas en una fila formateadas en una moneda (£ por especificidad)? - excel, vba, excel-vba

Lo siento, ni siquiera tengo ningún código básico que mostrar para este problema, ya que no tengo idea de por dónde empezar.

Estoy tratando de ordenar una hoja de cálculo que de otra manera parece =sum(AA+AD+AG...ad nauseum). Me imagino que hay una mejor manera de hacer esto.

Tengo varias celdas en cada fila que contienen números que quiero agregar, pero solo las que están formateadas como £ "s.

También debe poder moverse hacia abajo de la columna y trabajar a lo largo.

Respuestas

0 para la respuesta № 1

Necesitarías usar =CELL("format",A1) para encontrar lo que buscas, C2 vs G para moneda y general. Así que una columna auxiliar y un SUMIF simple significan que no hay necesidad de VBA

En VBA puedes usar left(range("a1").Text,1)


0 para la respuesta № 2

Podrías usar un UDF¹.

Function subtotalCurrency(rng As Range, _
Optional smbl As String = "£")
Dim txt As String, ttl As Double, c As Range
For Each c In rng
If CBool(InStr(1, c.Text, smbl, vbBinaryCompare)) Then
txt = Trim(Replace(c.Text, smbl, vbNullString))
If IsNumeric(txt) Then
subtotalCurrency = subtotalCurrency + CDbl(txt)
End If
End If
Debug.Print c.Text
Next c
End Function

gbp_sumif


¹ Una función definida por el usuario (también conocida como UDF) se coloca en una hoja de código de módulo estándar. Grifo Alt+F11 y cuando se abre el VBE, use inmediatamente los menús desplegables para Insertar ► Módulo (Alt+yo,METRO). Pegue el código de función en la nueva hoja de código del módulo titulada algo así como Libro1 - Módulo1 (Código). Grifo Alt+Q para volver a su (s) hoja (s) de trabajo.