2017-05-24 50 views
0

我確定已經提出並回答了這個問題,但我無法用一種能夠改變任何事情的方式來提出我的問題。如何以同樣的方式一次修改多個公式?

我想出如何從我收到的編輯這樣的公式中的數據過濾掉某些字符:

='Sheet1'!$B$4 

成爲

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE('Sheet1'!$B$4,"(",""),")",""),"N",""),"E",""),"S",""),"W",""),"m","") 

這樣做是刪除任何這六個字符從細胞。請注意,新公式中包含原始公式。

我需要將此更改應用於表格中的所有公式,並且其中有很多。我試着玩flash-fill;沒有運氣。有沒有更容易的方法來將這些替代命令「添加」到所有公式中,而無需手動編輯它們?

感謝

編輯:這是我最後做的宏,和它的工作:

Sub Macro1() 
Dim CurrentCell As String 
    CurrentCell = ActiveCell.Formula 
    CurrentCell = Replace("=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(@,""("",""""),"")"",""""),""N"",""""),""E"",""""),""S"",""""),""W"",""""),""m"","""")", "@", Mid(CurrentCell, 2)) 
    ActiveCell.Formula = CurrentCell 
End Sub 
+0

你在Sheet1B4中有什麼數據?你想改變什麼?應用這個替代公式後? –

+0

如果您的公式在一列中,只需將新公式放在不同的列中,然後再引用第一列的輸出並向下拖動即可。 –

+0

@Gowtham溼婆該表中的數據是不相關的,我只是試圖將七個替代命令添加到每個單元格。請注意,'Sheet1'!$ B $ 4仍在編輯的公式中。 – CRBTC

回答

0

這是我最後做的宏,它的工作!

Sub Macro1() 
Dim CurrentCell As String 
    CurrentCell = ActiveCell.Formula 
    CurrentCell = Replace("=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(@,""("",""""),"")"",""""),""N"",""""),""E"",""""),""S"",""""),""W"",""""),""m"","""")", "@", Mid(CurrentCell, 2)) 
    ActiveCell.Formula = CurrentCell 
End Sub