[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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)
こんばんは 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.