[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロで張り付けた関数のセル番地が変わってくれない』(KI)
マクロ超初心者なので、ばかばかしい質問になりますが 宜しくお願いします。
下のように、E1:F6 にリストがあります。 そして、A2 を検索値にして VLOOKUP で答えを 求めるために、次のような記述をしました。
Sub test1()
Range(Cells(2, 2), Cells(4, 2)) = "=VLOOKUP(A2,$E$1:$F$6,2,FALSE)"
End Sub
これにより、B2:B4 には、正しくVLOOKUPの数式が書き込まれました。
次に、10行下の A12 の検索値に対応させるために下のような記述をしました。
Sub test2()
k = 10 'オフセット量
Range(Cells(2 + k, 2), Cells(4 + k, 2)) = "=VLOOKUP(A2,$E$1:$F$6,2,FALSE)"
End Sub
ここで質問なのですが、B12 には =VLOOKUP(A2,$E$1:$F$6,2,FALSE) と書き込まれてしまいます。 私の思いは、 =VLOOKUP(A12,$E$1:$F$6,2,FALSE) となって、VLOOKUP の検索値も A2 から A12 へと 勝手に変わってくれるものと考えていました。
K=10 としているので、数式を書き込む行は正しく行われているのに 数式の中の検索値の部分は勝手に変わってくれないのですね。
[A] [B] [C] [D] [E] [F]
[1] 検索値 答え 品名 個数
[2] c 3 a 1
[3] a 1 b 2
[4] b 2 c 3
[5] d 4
[6] e 5
[7]
[8]
[9]
[10]
[11]
[12] e 3
[13] d 1
[14] a 2
このような場合には VLOOKUP の中はどのようにすれば良いのでしょうか?
くだらない質問をしているなということは、自分でも感じているのですが
宜しくお願いします。
(KI)
B2セルに「=VLOOKUP(A2,$E$1:$F$6,2,FALSE)」の式を入れる動作を マクロの記録にとると、数式部分もコードに成ります。
出来た数式をコピーして、現在出来ているコードの該当部分に貼り付けて使うと ご希望の様に成りそうに思います。
まぁ「A2」の 2 の所にも +k をするのでも良いと思いますが。。。
数式ですが、「""」で囲われているので、文字列です。
なので、思ったようなセル番地になった文字列が出来れば良いです。
"=VLOOKUP(A2,$E$1:$F$6,2,FALSE)"
↓
"=VLOOKUP(A" & 2 & ",$E$1:$F$6,2,FALSE)"
~~~ここを 2+k にすると kが10の時 12 に成ります。
(HANA)
Sub rangetest()
Dim k As Long
k = 10
With Union(Range(Cells(2, 2), Cells(4, 2)), _
Range(Cells(2 + k, 2), Cells(4 + k, 2)))
.Formula = "=VLOOKUP(A2,$E$1:$F$6,2,FALSE)"
End With
End Sub
ichinose
いろいろな書き方がありますが、こんなのも。
Sub RCtest()
Const k = 10
Range("B2:B4").Offset(k, 0).FormulaR1C1 = "=VLOOKUP(RC[-1],R1C5:R6C6,2,FALSE)"
End Sub
(Mook)
皆様、早速のご回答有難うございます。 どの、やり方も試してみました 。 なるほど! と、感じました。
マクロは自動記録をしたものに
ほんの少し手を加える程度のことしか
出来ませんが、この学校で目にとまった
面白そうな方法などを参考に手探りで
やっているような状態です。
皆様これからも、宜しくお願いします。
(KI)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.