[[20190602113238]] 『再計算時、特定の文字が入力されていたら別シート』(ponsuke) ページの最後に飛ぶ

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

 

『再計算時、特定の文字が入力されていたら別シートにその行ごと移動』(ponsuke)

はじめまして。最近VBAはじめた初心者です。
行き詰まってしまったので知恵をお貸しください。
一覧表シート(入力用)、未承認シート、承認シートと3つのシートがあります。
一覧表シートのA列には通し番号があり、通し番号を検索値として未承認シートへは全てVLOOKUP関数で転記されるようになっています。

未承認シートの処理として、再計算時B列に"完了"`,C列に"`承認"と入力されている行を承認シートの最終行の1つ下に移動させるようにしたいです。

色々参考に見て作っているのですが、下記のコードの「 If Range("B" & r).Value = "完了" And Range("C" & r).Value = "承認" Then」で実行時エラー13が出てしまいます。ご教示お願いいたします。

Private Sub Worksheet_Calculate()

  Dim lastRow As Long
  Dim r As Variant

  lastRow = Range("A"& Rows.Count).End(xlUp).Row
  For r = lastRow To 1 Step -1

  If Range("B" & r).Value = "完了" And Range("C" & r).Value = "承認" Then

  If Sheets("承認"). Range("A2").Value = "" Then
      Set Target = Sheets("承認").Range("A2")
  Else
      Set Target = Sheets("承認").Range("A" & Rows.Count).End(xlUp).Offset(1)
  End If

  Rows(r).Copy Target
  Rows(r).Delete

  Else

  End If

  Next

  End Sub

< 使用 Excel:Excel2013、使用 OS:Windows10 >


B列もしくはC列がエラー値ではありませんか?

(マナ) 2019/06/02(日) 13:10


マナさん 返信ありがとうございます。
ご指摘の通りエラー値があり、エラー値を除外したら解決しました。
ありがとうございます。

(ponsuke) 2019/06/02(日) 13:33


コメント返信:

[ 一覧(最新更新順) ]


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