![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
いつもお世話になっております。
ExcelのVBAでご質問があります。
指定した日付のデータを抽出して
別のシートに貼り付けるサブプロシージャなのですが、
下記のようなコードを書きましたところ、
貼り付けるセルが何故か("BH2")になってしまいます。
コードの一部を変えて、実行するとコード通り
("BH3")のセルに貼り付けてくれるのですが、
もう一度別の日付を入力して実行すると
("BH2")のセルに貼り付けてしまうのです。
何が原因なのでしょうか・・・?
ちなみに最初にコードを書いたときは
貼り付け先は("BH2")のセルにしていましたが
途中で間違いに気づき、("BH3")に書き換えました。
これが関係あるのでしょうか。
何卒よろしくお願いします。
------------------------------------------------------
Sub 予定表()
Application.ScreenUpdating = False
'ファイルオープン
Dim i As Integer
For i = 1 To Workbooks.Count
If (Workbooks(i).Name = "予定表.xls") Then
Exit For
End If
Next
If (i > Workbooks.Count) Then Workbooks.Open Filename:="\\Dress\予定表.xls"
' 予定表の取り込み
Dim date1 As Date
Dim fmt As String
Dim objList1 As ListObject
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim Rng As Range
Dim sh1 As Worksheet
Dim sh4 As Worksheet
'-----------------------------------------------------------------------
Set wb1 = Workbooks("製品.xls")
Set wb2 = Workbooks("予定表.xls")
Set sh1 = wb1.Worksheets("Sheet1 (3)")
Set sh4 = wb2.Worksheets("1")
'-------------------------------------------------------------------------
sh1.Range("BH3:BN20").ClearContents
'日付のチェック
Do
date1 = Application.InputBox("日を入力して下さい。", "印刷日入力", Type:=2)
If VarType(date1) = vbBoolean Then Exit Sub
If IsDate(date1) = False Then MsgBox date1 & " は、日付ではありません。"
Loop Until IsDate(date1)
With sh4
Set objList1 = .ListObjects("予定")
fmt = .Range("A2").NumberFormatLocal '書式を取る
date1 = Format(date1, fmt) '入力文字の書式変更
objList1.Range.AutoFilter Field:=1, Criteria1:=date1
Set Rng = objList1.Range.SpecialCells(xlCellTypeVisible)
Rng.Copy sh1.Range("BH3")
objList1.Range.AutoFilter Field:=1
End With
Application.CutCopyMode = False
Range("R3").Value = date1
Set Rng = Nothing
Set objList1 = Nothing
Set wb1 = Nothing
Set wb2 = Nothing
Set sh1 = Nothing
Set sh4 = Nothing
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは。
半分以上は、たぶん私のコードのようですね。
このコードを何度も読みなおしましたが、このコードからは、ずれてしまう部分は考えられません。
このレベルは、もうデバッギングのテクニックで、自力で解決するしかありませんね。
もしかして、Call で呼び出していませんか?
コードが二重になっていないでしょうか?
必ず、そこを通っているか、
objList1.Range.AutoFilter Field:=1, Criteria1:=date1
または、
Rng.Copy sh1.Range("BH3")
左の枠の部分をクリックして、●のブレークポイントをつけてみたらどうでしょうか?
コードと画面を見比べながら、どのような反応をしているか探さなくてはならないと思います。
私は、左側にExcelのワークシートを出しておいて、右側にVBEditor を出して、両方の様子を見ながら、ステップモード(F8) で進めて、原因を探します。ExcelのVesion によっては上手くいかないものもあるかもしれませんし、右・左はどちらでもよいことですが……。
この回答への補足
ご連絡遅くなりまして、申し訳ありません。
もう一度最初から作り直したらうまく行きました。
直接的な原因は不明ですが。。。
この度はありがとうございました。
あ、どうも。いつもお世話になります!
お陰様でコードはかなり流用させて頂いてます。
新しく書く場合も大体同じルールでやってますし、
ほんとに助かってます。
>もしかして、Call で呼び出していませんか?
>コードが二重になっていないでしょうか?
という所がちょっと意味が分からないのですが、
よく思い出してみると、いつもと違う手順で
作り始めた気がしてきました。
ちょっと検証してきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの差込印刷で可視セルだけ...
-
VBA別シートの最終行の下行へ貼...
-
エクセル:VBAで月変わりで、自...
-
Excel VBA インデックスの境...
-
Excel で行を指定回数だけコピ...
-
EXCELマクロで全シート対...
-
エクセルVBAで 2種のリストを...
-
エクセル形式の住所録から自動...
-
画像のものはシャワージェルな...
-
エクセルVBAで実行時エラー...
-
821sh 非通知拒否設定について
-
別シートの値を検索して一致し...
-
Excelについて質問します。 英...
-
エクセル 2つの表比較
-
VBAの処理が途中で止まる
-
スマホ機種変更で旧機種のGoogl...
-
携帯修理出して戻ってきたら、L...
-
メールボックスがない時はどう...
-
FOMAカード(UIM)異常
-
Ver.2.0のVideoPadが欲しい!!...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel で行を指定回数だけコピ...
-
excelの差込印刷で可視セルだけ...
-
Excel VBA インデックスの境...
-
エクセル:VBAで月変わりで、自...
-
VBA別シートの最終行の下行へ貼...
-
VBA:同じ文字列データの比...
-
エクセルVBAで 2種のリストを...
-
エクセルVBA 別シートの複数の...
-
歯抜けの時間を埋めて行の挿入
-
エクセルVBAで SendKeys "{TAB}"
-
エクセル2007で、マクロで、結...
-
VBA 貼付先範囲(行)がいっぱ...
-
vbaでコントロールブレイク
-
エクセルVBAでの日付順のデ...
-
Excelマクロ データが上書きさ...
-
《エクセル》リストから同じ分...
-
Excel VBAでシート内全体に非表...
-
VBAの処理が途中で止まる
-
エクセルVBAで実行時エラー...
-
EXCELマクロで全シート対...
おすすめ情報