[[20181101113631]] 『マクロでエラーが表示される件』(エクセル) ページの最後に飛ぶ

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

 

『マクロでエラーが表示される件』(エクセル)

お忙しいところすみません。
Selection.PasteSpecial Paste:=xlPasteValues
のところがエラーになってしまいます。

解決方法をご教授いただけますでしょうか?

Sub 実行ボタン()
Dim result As Range
'result変数にRangeの値を入れる宣言

  Set result = Range("H3:J106").Find(What:=Range("C1").Value)
  '変数resultに C1の番号がある「セル番地」を入れる

  'セル番地を検索する
 If result Is Nothing = False Then
 '検索が結果があった場合
    result.Cut
    '該当セル番地をカットする (クリップボードへ)
  Else
    MsgBox "該当番号がありません!"
  '無かった場合はエラーメッセージを出す
  End If

 'モードに合わせた場所を選択する

  If Range("E1") = "お呼び出し" Then
  Range("E11").Select

  ElseIf Range("E1") = "査定中" Then
  Range("E12").Select

  ElseIf Range("E1") = "完了" Then
  Range("E13").Select

  Else:
  MsgBox "モードがありません!"

  End If
  '----------ここまでは正常に動く--------------------
    Selection.PasteSpecial Paste:=xlPasteValues
   '選択先に"値のみ"貼り付けをする( Selection.PasteSpecial Paste:=xlPasteValues

   'コピーモードを解除する( Application.CutCopyMode = False

End Sub

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


windows10を使用しています。
(エクセル) 2018/11/01(木) 11:47

セルを Cut しているのに値だけ張り付けようとしているからですかね。 Copy なら動作すると思います。 元データを消して良いなら、コピー後に空欄にすれば良いでしょう。

または、1セルの値だけコピーするなら、以下のようにしても良いのではないでしょうか。

 Sub test()
    Dim result As Range
    Dim cw As String

    Set result = Range("H3:J106").Find(What:=Range("C1").Value)
    If result Is Nothing Then
        MsgBox "該当番号がありません!", vbCritical
        Exit Sub
    End If

    If Range("E1") = "お呼び出し" Then
        cw = "E11"
    ElseIf Range("E1") = "査定中" Then
        cw = "E12"
    ElseIf Range("E1") = "完了" Then
        cw = "E13"
    Else:
        MsgBox "モードがありません!", vbCritical
    End If

    If cw <> "" Then
        Range(cw).Value = result.Value
        result.Value = ""
    End If
 End Sub
(???) 2018/11/01(木) 12:01

理解し、解決できました。
ありがとうございました!
(エクセル) 2018/11/01(木) 13:39

コメント返信:

[ 一覧(最新更新順) ]


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