2017-10-26 4 views
0

I mit 100s von Formeln der folgenden Syntaxmodifizieren Excel-Formeln mit Makros oder VBA mit String-Befehle

=SUMIFS(dollars,refcodes,A2,refDate,">=6/1/2016",refDate,"<=6/30/2016") 

Ich brauche, um ein Excel-Blatt haben sie alle wie folgt zu ändern:

=round(SUMIFS(dollars,refcodes,A2,refDate,">=6/1/2016",refDate,"<=6/30/2016"),0) 

Kann mir jemand mit einem Makro helfen, das auf der aktiven Zelle "round (" nach "=" und ", 0)" nach dem letzten ")" einfügen würde.

+0

Meinst du nur die eine Zelle oder alle Vorkommen im Blatt der Formel? – QHarr

Antwort

0
Sub AddRound() 
    Dim cell As Range 
    For Each cell In Selection 
     If cell.HasFormula Then 
      cell.Formula = "=ROUND(" & Mid(cell.Formula, 2) & ",0)" 
     End If 
    Next cell 
End Sub 

Wählen Sie Ihre Zellen aus und führen Sie diese aus.

+0

Was passiert, wenn andere Formeln im Bereich sind? Ist es nicht einfacher, einen InStr-Test für etwas wie "= SUMME (Dollars, Refcodes") hinzuzufügen? Ich mag die .HasFormula, habe das vorher nicht gesehen. – QHarr

+0

@QHarr meh ... OP hat nach der aktiven Zelle gefragt, also ich Ich gehe davon aus, dass sie die Formeln wählen werden, die sie wollen, unabhängig davon, welche Formel tatsächlich in den Zellen ist. Es ist mehr als ich hätte geben sollen, da das OP keine Anstrengung zeigte. Deshalb ist das die Anstrengung, die ich gebe. –

+0

Antwort ließ mich nur kichern. – QHarr