プロが教える店舗&オフィスのセキュリティ対策術

E2に関数の結果が入っています。(D2に検索値、範囲は別シート)
E2をD2にデータが入っている行まで下にコピーするようなマクロを作りたいのですが、どのような式を書けばよいのでしょうか。
宜しくお願い致します。

A 回答 (3件)

こういうことですか?



例えば、
D2~D30まで値が入力されていたら
E2の式をE30までコピーしたい

D2~D99まで値が入力されていたら
E2の式をE99までコピーしたい

なら、次のようにします。

●シートactiveがアクティブになってない場合
 即ち他のシートがアクティブな状態で実行する場合は

With Sheets("active")
 .Range("E2").Copy .Range("E2", .Cells(Rows.Count, "D").End(xlUp).Offset(0, 1))
End With

●シートactiveがアクティブな状態で実行する場合は

Range("E2").Copy Range("E2", Cells(Rows.Count, "D").End(xlUp).Offset(0, 1))


シート名がactiveなんて説明がしにくいなぁ。。。(^^;;;


それから、
>E2に
>IFERROR(VLOOKUP($D2,AAA!F:H,3,FALSE),"")
>という関数があります。

これ実際の式をコピペしたものではないですよ。
式の態をなしてないので。

以上です。
 
    • good
    • 0
この回答へのお礼

ありがとうございます!

希望通りの処理ができました。

お礼日時:2009/11/10 05:58

再度の登場、myRangeです。



>「Rangeメソッドは失敗しました:'_Global'オブジェクト」

これは、D2に値が入っていないからです。
D2に値が入っているか確認してください。

------------------------------------------------
D2に値が入っているにも拘わらず、エラーがでるというのであれば
下記のことを補足願います。

最初の質問
>E2に関数の結果が入っています。(D2に検索値、範囲は別シート)
>E2をD2にデータが入っている行まで下にコピーするようなマクロ

この「範囲は別シート」の文言で、当方は、
E2とD2は別シートにある、と受け取りました。

ところが、補足では、
>D2、E2は"active"という名前のシートにあります

とのこと。
これでは、最初の質問の「範囲は別シート」は意味不明です。
式をどのシートのどのセルにコピーするのか分かりません。

そから辺りをシート名、セル番地など具体的に提示してくさい。
以上です。

この回答への補足

わかりづらくてすみませんでした。

D2,E2はシート"active"にあります。

E2に
IFERROR(VLOOKUP($D2,AAA!F:H,3,FALSE),"")
という関数があります。
VLOOKUPの検索範囲でシート"AAA"をみています。

どうか宜しくお願い致します。

補足日時:2009/11/07 06:01
    • good
    • 0

セルD2は、Sheet2として。



(1)式も書式もコピーする場合

Range("E2").Copy Range("E3:E" & Sheets("Sheet2").Range("D2").Value)

(2)式のみコピーする場合

Range("E3:E" & Sheets("Sheet2").Range("D2").Value) = Range("E2").Formula

但し、上記は式のあるシートがアクティブの場合です。
他のシートアクティブなときに実行するのであれば
Range("E3:~)、Range("E2")の前にシート名付けてやるか
  Sheets("Sheet1").Range("E3~
最初に、式のあるシートをアクティブにしてやります。
  Sheets("Sheet1").Select

以上です。

この回答への補足

myRangeさんありがとうございます。

早速(1)の方法で実行してみました。
D2、E2は"active"という名前のシートにあります。

Sub copy()
'
' copy Macro
'

'
Range("E2").copy Range("E3:E" & Sheets("active").Range("D2").Value)
End Sub

しかし、
「Rangeメソッドは失敗しました:'_Global'オブジェクト」
と表示されてしまいます。
シート名を変えただけなのですが。。

補足日時:2009/11/05 02:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!