2016-02-29 114 views
0

我想将用户的x输入替换为存储在N2中的单元格地址值。例如Cells(2, i+10)J2单元格,在单元格A2的第一个循环中,如果用户编写了x^2,那么将会是=J2^2,如果用户编写了x^3等等,则下一个循环将是B2=K^3使用VBA Excel中的替换公式替换单元格地址

numero_formulas = InputBox("¿Cuántas fórmulas vas a ingresar?") 
    Sheets("ResultadosContinua").range("I6") = numero_formulas 

    For i = 1 To numero_formulas 

    N2 = Cells(2, i + 10) 

    formula_user = InputBox("Escribe la fórmula:" & i & "") 
    Cells(2, i).Select 
    Sheets("ResultadosContinua").Select 
    ActiveCell.Formula = "=" & Replace(formula_user, "x", " & N2 & ") 
+0

什么是你想用这条线'ActiveCell.Formula = “=” 做和替换(formula_user, “X”, “&N2&”)'?它是一样的:'ActiveCell.Formula =“=”&Replace(formula_user,“x”,n2)' –

+0

我说的是在ActiveCell.Formula =在循环中存储在N2中的单元格引用。例如,在第一个循环中,我想N2 = K2(K2是Cells(2,i + 10,考虑到i是1)。用户将编写一个数学公式,例如x^2 + 2,该行将用单元格替换x – Maxwell

+0

第四次迭代后的循环会删除'N2'内的公式,请重新编写您的代码 –

回答

0

如果你想在N2的地址,(从activecell 4列外),你需要使用这样的:

numero_formulas = InputBox("¿Cuántas fórmulas vas a ingresar?") 
Sheets("ResultadosContinua").Range("I6") = numero_formulas 

For i = 1 To numero_formulas 

n2 = Cells(2, i + 10) 
formula_user = InputBox("Escribe la fórmula:" & i & "") 
Cells(2, i).Select 
Sheets("ResultadosContinua").Select 
ActiveCell.Formula = "=" & Replace(formula_user, "x", ActiveCell.Offset(0, 4).Address(False, False)) 

但正如我所说,你的代码将删除里面的公式在第四次迭代之后,细胞N2

+0

我删除了N2并且在你的ActiveCell.Offset(2,i + 10).Address(False,False)感谢! – Maxwell

+0

请设置答案为正确的。 。 –

0

我建议阅读如何避免使用.Select根据this question。我还鼓励使用您定位的对象的全名。即Cells(2,10) = "Text"可以工作,但最好写Cells(2,10).Value = "Text"。然后,您的代码可以改为:

Dim rngNumeroRange as Range 
Dim intNumeroFormulas as Integer 
Dim rngN2 as Range 

Set rngNumeroRange = Sheets("ResultadosContinua").Range("I6") 
intNumeroFormulas = InputBox("¿Cuántas fórmulas vas a ingresar?") 
rngNumeroRange.Value = intNumeroFormulas 

For i = 1 To intNumeroFormulas 

    set rngN2 = Sheets("ResultadosContinua").Cells(2, i) 

    formula_user = InputBox("Escribe la fórmula:" & i & "") 
    rngN2.Formula = "=" & Replace(formula_user, "x", rngN2.Offset(0, 9).Address(False, False)) 

Next 
相关问题