[[20200517112704]] 『VBA 別シートにある特定のセルを上書きしたい』(いちご) ページの最後に飛ぶ

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

 

『VBA 別シートにある特定のセルを上書きしたい』(いちご)

「上書き」と「一覧」のシートがあり、上書きシートに名称と日付を入力し、上書きボタンを押すと、一覧シート内を名称で検索し、ヒットした名称の日付の欄を「上書きシート」で記入した日付に上書きできるようにしたいです。

以下のコードで試しましたが、「t.Select」の部分で「オブジェクトSelectのメソッドRangeが失敗しました」とエラーが出てしまいます。
どの部分が違うのでしょうか?
また、もっといいコードがあれば教えていただきたいです。

初心者な為、めちゃくちゃなコードでしたら申し訳ないですが、
どうぞよろしくお願いいたします。

 Sub 上書き()

    Dim i
    Dim t As Range

    i = Range("C7").Value ’上書きシート内「名称」セル

    Range("C15").Select ’上書きシート内「日付」セル
    Selection.Copy

    Set t = Sheets("一覧").Range("A:A").Find(what:=i, lookat:=xlWhole) ’A列に名称が記入されている

  If t Is Nothing Then
    MsgBox "見つかりませんでした"
  Else
    t.Select
    ActiveCell.Offset(0, 3).Select ’C列に日付が記入されている
    ActiveCell.PasteSpecial Paste:=xlPasteValues

    MsgBox "上書きが完了しました"

  End If

 End Sub

< 使用 Excel:Excel2019、使用 OS:unknown >


 単純にSheets("一覧")がアクティブになっていないからでは。

 >   ActiveCell.Offset(0, 3).Select ’C列に日付が記入されている
 >   ActiveCell.PasteSpecial Paste:=xlPasteValues

   ↑ ここのActiveCellをtに変え、続けて
         Offset・・・.PasteSpecialにすれば、
     offset・・・選択もいらない。
(BJ) 2020/05/17(日) 12:58

できました!
ありがとうございました!
(いちご) 2020/05/17(日) 13:38

コメント返信:

[ 一覧(最新更新順) ]


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