2016-02-29 145 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 
相關問題