|
こんばんわ
度々ご教授頂き有難うございます。
今回は、下記の説明がすっきり理解できません。分かりやすく教えていただけませんか?
----------------------------------------------------------------
マイクロソフトのsupport.microsoft.com/kb/905164/ja
VBA マクロで 1 行全体のコピーと貼り付けを実行する場合にこの問題を回避するには、データを含む行の部分だけをコピーするように VBA マクロのコードを変更します。たとえば、次に示すような VBA マクロ コードを使用します。
Range(Range("A" & ActiveCell.Row), Range("IV" & ActiveCell.Row).End(xlToLeft)).Select
----------------------------------------------------------------
2行目がフィールド行で、フィールド行ごとコピーしたいのですが 、貼り付けは出来ているのにエラーメッセージ1004が表示されます。
strDate = TextBox1.Value '入力された日付
Sheets("元データ").Select
Range("A2").AutoFilter Field:=3, Criteria1:=Format(strDate, "yy/m/d")
Set FilData = Range("A2").CurrentRegion.SpecialCells(xlCellTypeVisible)
FilData.Select
Selection.Copy Destination:=Sheets("結果").Range("A1")
Excel2000ではこれで問題は無いのですが、
可視セルの範囲を
MsgBox FilData.Address(0,0)
で見ると A2:Z5 A8:Z10 と離れているので都合が悪いのでしょうか?
A2:Z5 とフィールド行とくっついていればメッセージは表示されませんが、A2:Z2 A4:Z4でもメッセージは表示されてしまいます。
それで上のマイクロソフトの説明を参考に
Sheets("元データ").Select
r=Range("A65536").End(xlUp).Row
Range("A2").AutoFilter Field:=3, Criteria1:=Format(strDate, "yy/m/d")
Set FilData = Range(Range("A2"),Range("Z" & r)).SpecialCells(xlCellTypeVisible)
FilData.Select
Selection.Copy Destination:=Sheets("結果").Range("A1")
としてみましたがエラーメッセージがでます。
Destinationを取ったり、PasteSpecialを使ったりしてみましたがうまく行きません。
また、フィールド行とデータ抽出部分の2回に分けて貼り付けをしてもダメでした。
結局 On Error Resum Next を挟んで使用しています。
何とかいい方法が無いでしょうか
|
|