• ベストアンサー

VBAでのシート保存

データの入力されているシートから検索をして条件が合うものを別のシートへコピーのVBAですが ' "AA", "BB", "CC", "DD" の4項目を検索 If Application.CountA(c.Offset(, 10).Resize(, 4)) <> 4 Then 'A列から、A列を含めて14列取得し、Sheet2にコピー c.Resize(, 14).Copy Sheet2.Cells(i, 1) i = i + 1 End If (コピーシートは一部ロックで保護、検索の結果をコピーする部分はロック解除しています)つぎのディバックエラーです。 c.Resize(, 14).Copy Sheet2.Cells(i, 1) 解決できません。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 #1さんのおっしゃるとおり、なるべく、質問するときは、出来る限り全体が分かるようにしてください。また、デバッグエラーは、その番号とエラーの内容を書き出してください。 >コピーシートは一部ロックで保護、検索の結果をコピーする部分はロック解除しています 特に、通常のロックの場合は関係がありません。ただ、.EnableSelection = xlUnlockedCells としてあれば、別です。それを外さないとエラーが出るはずです。それから、これは、もしかしたら、ご自身で書いたマクロとは違いますね。 Dim Rng As Range Dim c As Range Dim i As Long Set Rng = Range("A1", Range("A65536").End(xlUp)) i = 1 '開始行の初期値 For Each c In Rng  If WorksheetFunction.CountA(c.Offset(, 10).Resize(, 4)) < 4 Then   c.Resize(, 14).Copy Sheet4.Cells(i, 1)   i = i + 1  End If Next c Set Rng = Nothing

hirosatonn
質問者

お礼

Wendy02さんありがとうございます。 確かにこのマクロあなた様に助けていただいたやつです。 自分で頑張っているのですが、これからも見捨てないでくださいね。

その他の回答 (1)

  • myCat
  • ベストアンサー率60% (9/15)
回答No.1

こんばんは。 >' "AA", "BB", "CC", "DD" の4項目を検索 これのコードどこにも無いですね・・・(^^;;; と突っ込みは置いといて。。 ほんの一部のコードしか書いてありませんので 提示のコードだけでエラーを判断すると、  変数 i の初期設定がされてないのでは? ですから、最初に該当の部分をコピーするとき  変数 i は、0 ですから、 Sheet2.Cells(0,1)となりエラーとなる ループする前に、i=1 とか変数の初期設定をしましょう。   以上です。  

関連するQ&A