2017-04-14 10 views
0

時々、フィルタリングされた範囲の選択に対して式を実行し、値を変換する必要があります。copyと入力し、次にspecial paste valuesにする必要があります。 。私はmacroフィルタをクリアせずに値に数式を変換する必要があります、私はまた、この操作のショートカットキーを使用したいと思います。VBAをフィルタリングされた範囲の値に変換する

答えて

0

以下のコードはこの操作を許可します。この操作では、CTRL + Mショートカットを使用できます。このショートカットキーを割り当てるには、マクロを編集します。

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

なぜ値をコピーして貼り付けますか?確かに 'cl = cl.value'を設定する方が良いでしょうか? –

関連する問題