2017-11-08 10 views
0

コードは数日前に正常に動作していましたが、現在は件名エラーが発生しています。助けて?ランタイムエラー '6'の取得:オーバーフローエラー

Sub CopyRows() 
    Dim bottomL As Integer 
    Dim x As Integer 
     bottomL = Sheets("Pacer").Range("L" & Rows.Count).End(xlUp).Row: x = 1 

    Dim c As Range 
    For Each c In Sheets("Pacer").Range("A1:L" & bottomL) 
     If (c.Value = "AFSB" Or c.Value = "TEIGIP4T" Or c.Value = "EPP") Then 
      Intersect(c.Parent.Columns("A:Q"), c.EntireRow).Copy Worksheets("Portfolio").Range("A" & x + 1) 
      x = x + 1 
     End If 
    Next c 

End Sub 
+0

を説明してみ? – Rory

+0

if(c.Value = "AFSB"またはc.Value = "TEIGIP4T"またはc.Value = "EPP")Then – SirHillaryPushemoff

+0

あなたはおそらく '#######'と表示されるセルを持っていますか? '(c.Value2 =" AFSB "またはc.Value2 =" TEIGIP4T "またはc.Value2 =" EPP ")Then' – Rory

答えて

0

この

Option Explicit 

Sub CopyRows() 
    Dim bottomL As Long 
    Dim x As Long 
     bottomL = Sheets("Pacer").Range("L" & Rows.CountLarge).End(xlUp).Row: x = 1 

    Dim c As Range 
    For Each c In Sheets("Pacer").Range("A1:L" & bottomL) 
     If (c.Value = "AFSB" Or c.Value = "TEIGIP4T" Or c.Value = "EPP") Then 
      Intersect(c.Parent.Columns("A:Q"), c.EntireRow).Copy Worksheets("Portfolio").Range("A" & x + 1) 
      x = x + 1 
     End If 
    Next c 

End Sub 

理由はhere実際にエラーが発生しライン

+0

私たちはついに私たちがリフレッシュしてくれたと思います! CountLargeや明示的な宣言を最初から使用していないという問題はありましたか?だから、それは一見面白いと思われるものに落ちる可能性があります。 – SirHillaryPushemoff

+0

あなたはCountLargeを使用していなかったので、ランタイムエラーが発生しました。明示的に重要ではありませんここではベストプラクティス – Storax

+0

本当にありがとう、本当にありがとう。これは私が日常的に使用するもので、それを正しく得るために重要なものです。 Muchos gracias! – SirHillaryPushemoff

1

変数 bottomL As Integer

オーバーフローエラーにそれが32,767行を超える瞬間を与えます。ルールがXに適用されるだけでなく、それが増加している:それは限り

bottomL As Long

編集宣言してみてください。

+0

ショットを与えましたが、依然としてオーバーフローエラーが発生しています。私がここで間違っていることを確かめないでください – SirHillaryPushemoff

+0

'x'の値は何ですか?基本的には、IntegerではなくLongを常に使用してください。 – SJR

+0

@SJR Spot on! xはインクリメントしています。私は自分の反応を編集した。 –

関連する問題