2017-04-17 306 views
1

我想要一個單元格,其中某人可以輸入一個公式,然後使用宏自動替換該公式中的單詞與正確的編號同一張紙。VBA Excel如何用另一個單元格值替換值的一部分

實施例:
片材含有細胞(L8)與值重量,讓說其10 另一個細胞(L10)具有用於高度的值,可以說20.

現在,如果有人類型在單元格(I27)中是這樣的:(Height + 120)/ Weight 我希望宏將其文本替換爲相應的值,以便我可以將該文本用作公式並在單元格I28中顯示結果。因此,單元格(I27)將顯示20 + 120/10,單元格(I28)將輸出該公式的結果。

該值在L8-L14列中。

我試圖用一個解決方案去,我發現這是如下:

With Range("I27") 
    .Replace What:="Weight", _ 
      Replacement:="", _ 
      LookAt:=xlPart, _ 
      SearchOrder:=xlByRows, _ 
      MatchCase:=False, _ 
      SearchFormat:=False, _ 
      ReplaceFormat:=False 
End With 

我需要以某種方式告訴它得到來自其他小區更換。

我想如果我可以讓代碼工作,我將能夠複製它爲我想要替換的每個單詞(4),然後解決方案使用該公式在單元格旁邊輸出結果它。

+0

爲什麼要替換單詞?爲什麼不給L8命名爲「Weight」,而L10的名稱是「Height」。那麼'=(Height + 120)/ Weight'的公式是有效的,並計算出你想要的答案。 – YowE3K

+0

我不確定我是否正確理解你。我需要以某種方式告訴excel,當有人在那個單元格中輸入那些特定的單詞時,他們實際上應該是在另一個地方找到的值。我只是想繞過手動查找和輸入這些值,因爲公式不會保持不變,並且最終不得不經常這樣做。此外,這些值正在計算,所以他們一直在改變。 dot.Py的解決方案已經幫助我了,現在我可以替換它了,現在我要做的就是將這個「已轉換」的單元格用作另一個單元格的公式。 – ManWithManyCheeses

+0

這是否適用於某種考試情境,例如,您要求諸如「您將如何計算某某事」以及該人將其「答案」作爲「公式」輸入,然後運行該宏以生成結果他們的答案?或者你只是想讓用戶在他們的公式中使用名稱「Weight」和「Height」(等)而不是「L8」和「L10」(等等),以使他們的公式更加「有意義」?如果是後者,只需命名單元格。 (即使是前者,也可以命名單元格,然後將I28計算爲'Range(「I28」)。Formula =「=」和Range(「I27」)。Text') – YowE3K

回答

3

使用命名範圍,

1- Select the menu Formulas --> Name Manager 
2- New...--> Name: Weight, RefertTo: =Sheet1!$L$8 -->OK 
3- New...--> Name: Height, RefertTo: =Sheet1!$L$10 -->OK 

現在你的L8名稱 「重量」 和你細胞L10名稱 「高度」。您可以在任何單元格中鍵入以下公式:

=(Height+120)/Weight 

,你會得到所產生的(L10+120)/L8值。

p.s.在步驟2和3中,將光標放在RefersTo框中,然後單擊獲取名稱的相應單元格,可以更輕鬆地完成此操作。

+1

謝謝YowE3K,打算到目前爲止!:-) – ManWithManyCheeses

+0

一個小問題,@ YowE3K發佈了這個'Range(「I28」)。Formula =「=」&Range(「I27」)。Text'是否可能擠壓圓的方法進去? – ManWithManyCheeses

+0

你的意思是你不想讓用戶輸入公式的「=」部分? –

相關問題