2017-04-14 1 views
0

Manchmal muss ich eine Formel auf eine Auswahl eines gefilterten Bereichs ausführen und dann in Werte konvertieren, jedes Mal, wenn ich copy und dann special paste values möchte, muss ich zuerst die Filter löschen . Ich brauche eine macro, die die Formel in Werte konvertiert, ohne die Filter zu löschen, ich möchte auch eine Tastenkombination für diese Operation verwenden.VBA für Formel auf Werte in einem gefilterten Bereich

Antwort

0

Der folgende Code ermöglicht diesen Vorgang, die Tastenkombination STRG + M ist für diesen Vorgang verfügbar. Bearbeiten Sie das Makro, um diese Tastenkombination zuzuweisen.

Sub PasteFilterValues() 

    Application.ScreenUpdating = False 
    Application.Calculation = xlCalculationManual 

    If Selection.Cells.Count = 1 Then 

     Selection.Copy 
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 

    Else 

     Dim rng As Range 

     Set rng = Selection.SpecialCells(xlCellTypeVisible) 

     For Each cl In rng 

      cl.Copy 
      cl.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
       :=False, Transpose:=False 

     Next cl 

     rng.Select 

    End If 

    Application.ScreenUpdating = True 
    Application.Calculation = xlCalculationAutomatic 
    Application.CutCopyMode = False 

End Sub 
+0

Warum Werte kopieren und einfügen? Sicher wäre es besser, nur 'cl = cl.value' zu setzen? –