[[20051106102317]] 『VBAで数値のみを貼り付け』(Green) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAで数値のみを貼り付け』(Green)

   Shee2 の D5: D20 とか D5:E20 を範囲して
  それを Sheet1 のカーソルを移動した 例えば B5に
  「数値のみ」をVBAで貼り付けたいのです。   

  sheet2 の D5:D20 とか D5:E20 の範囲は オートフィルター
  が掛けられた状態になっています。
 よろしくお願いいたします。  


 VBAをご希望のようですが、
 >D5: D20 とか D5:E20 
 のように、「とか」はエクセル君は理解してくれません。。。
 明確に、どのセルか!というものが無いとなかなか難しいと思います。
 貼付け場所も、「B5」でいいのでしょうか?

 >D5:D20 とか D5:E20 の範囲は オートフィルター
 とありますので、オートフィルターを掛けた後のものをコピーしたいって事かな?
 でも、列まで増えているのが気になります。。。

 (キリキ)(〃⌒o⌒)b  

キリキさん 連絡が遅くなってすみません。
  
 1. オートフィルターを掛けた状態でコピーしたいのです。
     範囲が広がると難しくなるようなので、 この例でいいいますと、
     D5:D20 をコピーすることで 対応お願いいたします。
     
 2. Sheet1に貼り付ける場所はデーターが増えるので、
    カーソルを移動したセルの場所なのですが。。。
    このようなことできるのでしょうか ? (Green)

 InputBoxを使用しましたので、範囲を手入力するのは如何でしょう?

 '--------------------
Sub test()
Dim adrs As Variant
On Error GoTo エラー
    If ActiveSheet.Name <> "Sheet1" Then: MsgBox "シートが違います": Exit Sub
    Worksheets("Sheet2").Activate
    adrs = InputBox("コピーする範囲を入力してください", Title:="コピー")
    If adrs = "" Then: MsgBox "キャンセルされました": Exit Sub
    Worksheets("Sheet2").Range(adrs).Copy
    Worksheets("Sheet1").Activate
    ActiveSheet.Paste Destination:=ActiveCell
Exit Sub
エラー: MsgBox "入力に誤りがあります": End Sub

 ※Sheet1 が、Active な状態で、上記を実行してみてください。
 (キリキ)(〃⌒o⌒)b

 こんばんわ。

 >オートフィルターを掛けた状態でコピーしたいのです。
 Range("d5").currenregion で取得できませんか?

 >カーソルを移動したセルの場所なのですが。。。
 InputBox method?
 Application.InputBox ("出力先のセルを指定",type:=8)
 これだとカーソルでセルをクリックできます。
 例えば:

 Sub test()
 Dim opTo As Range
 On Error GoTo Last
 Set opTo = Application.InputBox("出力先のセルを指定", Type:=8)
 Err.Clear
 With Sheets("sheet1")
    .Range("d5").CurrentRegion.Copy opTo.Cells(1, 1)
 End With
 Last:
 End Sub
 (seiya)

こんばんは キリキさん
  ありがとうございます。 InputBoxで範囲を指定させる方法は
  初心者には いい方法で 助かりました。

 
こんばんは Seiyaさん
  出力先のセル指定 これも ありがたい方法を伝授して
  戴きありがとうございます。


 seiyaさん、いつも素敵なコードですね^^
 また一つ勉強になりました〜

 一つ質問しても良いですか?
 仮に、コピーする範囲を上記のように取得したとすると
 それを返すためには、どのようなコードになるのでしょう?

 Set adrs = Application.InputBox("コピーする範囲を入力してください", Title:="コピー", Type:=8)

 Greenさん、レスをお借りしてスイマセン
 (キリキ)(〃⌒o⌒)b

 (キリキ)さん
 >いつも素敵なコードですね^^
 恥ずかしくなります....

 AutoFilter, AdvancedFilterは私自身あまり使用しないので、自信がありません。
 連続した範囲だけとは限らないのですよね?
 と、いうことでお気づきだとは思いますが、私の提示したコードはうまく機能
 しない場合があります。

 やはり、上端のセルを指定してEnd(xlUp)でひろうしかないのでしょうね...

 ちなみに、もうご存知だとは思いますが、Office12のエクセルは大幅にかわりますよね。
 65536, 256はとんでもない数字になりますので、そろそろそれに対応しておいたほうが
 よろしいのでは?
 Cells(Rows.Count,"a").End(xlUp)
 Cells(1,Columns.Count).End(xlToLeft) 等ですが?
 (seiya)

 お返事ありがとうございます^^

 >連続した範囲だけとは限らないのですよね?
 そうなんですよね・・・
 σ(^o^;)も、初心者の域を脱していないので、難しいことはな〜んもわかりません。。。

 >やはり、上端のセルを指定してEnd(xlUp)でひろうしかないのでしょうね...
 納得しました。
 でも、「Type:=8」は知らないことの一つだったので、チョット嬉しく思います。

 >もうご存知だとは思いますが、Office12のエクセルは大幅にかわりますよね。
 全然知らなかった・・・orz
 これは気を付けないといけないですね〜
 って、もう回答付いてるし!
 >Cells(Rows.Count,"a").End(xlUp)
 >Cells(1,Columns.Count).End(xlToLeft)
 こちらも合わせて、お礼申し上げます。

 (キリキ)(〃⌒o⌒)b

 抜粋ですが、OFFICE 12の仕様です.

 主な項目	       現Version	   Office 12
 行	        65536行	   1048576行
 列	        256列	     16384列
 条件付書式       3件	 メモリの許す限り
 ソート	       3段階	      64段階
 数式のネスト    7段階	      64段階
 (seiya)


 ・・・・               L(゚O゚)」 ↑
(純丸)(o^-')b

 ↑
 ↑
 本日の大儲け
   ニヤリ L(゚O゚)」(弥太郎)

 興味のある人はこちらへ
     
http://blogs.msdn.com/excel/default.aspx

 英語ですが....驚きですよ!
 (seiya)


 seiya さん、貴重な情報をありがとうございます。勉強します。

 (ken)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.