Buenos días,
Actualmente me encuentro desarrollando una macro que debe insertar una formula en una celda, dicha formula esta compuesta por una constante llamada "td" de tipo decimal la cual ha sido declarada como tipo single y el codigo que estoy utilizando para insertar dicha variable en la formula y a su vez en la hoja de calculo es la siguiente:
ActiveCell.Offset(0, 1).FormulaR1C1 = "=NPV(" & td & ",RC[4]:R" & uf & "C[4])"
pero al ejecutrase dicha sentnecia ecel asume la coma del valor almacenado en la constante como un separador de la función, en otras palabras si el valor de td es 0,009, la formula que se refleja en la hoja de excel es =VA(0;009;E5:E10).
ya he intentado cambiar la configuracion regional de excel utilizando los siguientes argumentos
With Application
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = True
pero no funciono y a su vez intente utilizar el separador como variable pero tampoco funciono separar = Application.International(xlListSeparator).
Agradezco y valoro mucho sus comentarios y opiniones, feliz día
No hace falta que te compliques tanto. Simplemente haz un replace así:
ActiveCell.Offset(0, 1).FormulaR1C1 = "=NPV(" & replace(td,",",".") & ",RC[4]:R" & uf & "C[4])"
Un saludo