0

別のタブの値に基づいて特定の列の値を検索する大きなリスト行をループしようとしています。1 つの値に対して動作していましたが、2 番目の基準を追加するとすぐに、「Set TwoRange = Application.Union(TwoRange, cell.EntireRow)」でエラーが発生します。以下にコードを入力しました。

これらのエラーが発生する理由を知っている人はいますか?

編集: エラーは「実行時エラー '5': 無効なプロシージャ コールまたは引数です。

Sub Calculate()

'----Data Pull----'
  Dim cell As Range
  Dim OneRange As Range
  Dim TwoRange As Range
  Dim ThreeRange As Range
  Dim FourRange As Range
  Dim FiveRange As Range
  Dim SixRange As Range
  Dim SevenRange As Range
  Dim EightRange As Range
  Dim NineRange As Range
  Dim TenRange As Range

  Dim MyCount As Long
  Dim ExistCount As Long
  ExistCount = 0
  MyCount = 1


  For Each cell In Worksheets("Data").Range("C2:C99999")

  If cell.Value = Worksheets("Calculation").Range("B8").Value Then
  ExistCount = ExistCount + 1
      If MyCount = 1 Then Set OneRange = cell.Offset(0, -1)
      Set OneRange = Application.Union(OneRange, cell.EntireRow)
      MyCount = MyCount + 1


  ElseIf cell.Value = Worksheets("Calculation").Range("B9").Value Then
      ExistCount = ExistCount + 1
      If MyCount = 1 Then Set TwoRange = cell.Offset(0, -1)
      Set TwoRange = Application.Union(TwoRange, cell.EntireRow)
      MyCount = MyCount + 1


  End If
  Next cell


  If ExistCount > 0 Then
    OneRange.Copy Destination:=Worksheets("LOB One").Range("A3")
  End If

  If ExistCount > 0 Then
    TwoRange.Copy Destination:=Worksheets("LOB Two").Range("A3")
  End If

End Sub
4

1 に答える 1

0

コメントでティム・ウィリアムズが回答しました。

問題の行が実行されたときに、TwoRange がまだ Nothing である可能性があります。OneRange と TwoRange を追跡するには、個別の「MyCount」変数が必要です

お時間を割いていただきありがとうございます。

于 2013-12-30T01:10:57.417 に答える