Excelで関数の計算結果(値だけ)を入れたいのでマクロ化してみた
最初に作ったのが(1).
値だけ入れたいので、毎回コピペ必要なのが気になった
次に作ったのが(2).
書き方がおかしいのかオートフィルしなかった
ループさせてみたけど、かなり遅い
両方のいいところを取ったものにしたい(´・ω・`)
(1).
Sub subFormula() Dim mySheet1 As Worksheet Set mySheet1 = ThisWorkbook.Worksheets("Sheet1") ' オートフィルOK mySheet1.Range("D4:D6").Formula = "=VLOOKUP(B4,$G$4:$K$6,2,0)" ' 式削除(値のみ貼り付け) mySheet1.Range("D4:D6").Copy mySheet1.Range("D4:D6").PasteSpecial Paste:=xlValues End Sub
(2).
Sub subValue() Dim i As Long Dim mySheet1 As Worksheet Set mySheet1 = ThisWorkbook.Worksheets("Sheet1") ' オートフィルNG mySheet1.Range("D4:D6").Value = WorksheetFunction.VLookup(Range("B4"), Range("$G$4:$K$6"), 2, 0) ' しかたないからガリガリ博士 For i = 4 To mySheet1.Range("D4").End(xlDown).Row ' 1行ずつ mySheet1.Range("D" & i).Value = WorksheetFunction.VLookup(Range("B" & i), Range("$G$4:$K$6"), 2, 0) Next End Sub
※画像の列番号消しちゃった・・ まぁいいや