[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『非表示セルのコピー』(516)
vbaで非表示にしているセルをコピーするにはどうしたら良いでしょうか?
やろうとしていることは、sheet1からsheet2への転記で、コードは以下の様にしています(抜粋)
Dim r As Long
With Worksheets("sheet2") r = .Range("A65536").End(xlUp).Row + 1
Worksheets("sheet1").Range("A6:M24").Copy _ Destination:=.Cells(r, 1) End With
で、I列〜M列を非表示にした際にsheet2にうまく転記できず困っています。
非表示にしなければ希望通り転記してくれるのですが…
どこが問題なのでしょうか?
>I列〜M列を非表示にした際にsheet2にうまく転記できず困っています。 具体的にどの様に成るのでしょう? I:M列がコピーされない ですか?
>コードは以下の様にしています(抜粋) と言う事ですが、載せて下さったコードで 本当に転記されないか確認されましたか?
I:M列を右クリック→非表示 で非表示にして 同じコードで試してみましたが こちらでは上手く転記される様です。(2002)
もしかして、オートフィルタで絞り込み等行って居ませんか?
また、エクセルのバージョンを書いておかれると良いかもしれません。
(HANA)
A:H列はうまく転記されるのですが、I:M列は転記できません。
そして、ご指摘の通り、オートフィルタで絞込みを行っています…
私が行おうと思っているのはA列に20行の名前の入力欄がありまして、名前の入力があった行のみsheet2に転記したいのですが、初心者の為、コード作成がうまくいかずオートフィルタを使用しています。
一応、私の作成したコード全文を貼ってみます。(関係ないコードもありますが…)
Sub 転記()
'日報Noの取得
Range("A3").Select Selection.Copy Range("J6:J24").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False
'オートフィルタで空欄以外を表示
Sheets("a").Select Selection.AutoFilter Field:=1, Criteria1:="<>"
'転記
Dim r As Long
With Worksheets("b") r = .Range("A65536").End(xlUp).Row + 1
Worksheets("a").Range("A6:M24").Copy _ Destination:=.Cells(r, 1) End With
'入力欄を全て表示→入力箇所を全てクリア→保存→メニュー画面に戻る
Selection.AutoFilter Field:=1 Range("A6:B24,E6:G24").Select Range("E6").Activate Selection.ClearContents ActiveWorkbook.Save Sheets("メニュー画面").Select
End Sub
ご指導願います…
excelは2000です。
オートフィルタで絞り込みをしていると 手作業でコピーした場合でも、非表示列は貼り付きません。
どうせマクロがやるのですから 一旦非表示列を表示して コピー&貼り付け後 再度非表示にされてはどうでしょう?
或いは、フィルタオプションの設定で直接Sheet2へ抽出すると 非表示列も一緒に抽出されるので良いかもしれません。 その場合、マクロは 条件を書き、抽出後のタイトル行を削除(上詰め) と言う作業が必要に成ってくると思います。 コピー&貼り付け や オートフィルタを解除 と言った作業は 不要になりますが。。。
フィルタオプションの設定で、直接Sheet2へ抽出する場合は Sheet2を表示した状態で、設定を開始します。 こちらも、マクロの記録で参考に成るコードが得られると思います。
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.