2016-08-02 5 views
0

行の範囲を再表示しようとしています。これはループ内で行われるため、変数を使用しています。コード:VBA Rowsプロパティ変数

For i = 2 To lastrow 
If Workbooks("Discrepancies1").Worksheets(1).Cells(i, 8) = "USRFLG02=T" Then 
a = Workbooks("Discrepancies1").Worksheets(1).Cells(i, 46).Value 
b = Application.WorksheetFunction.CountIf(c, a) 

Workbooks("Discrepancies1").Worksheets(1).Rows("i: i + b - 1").Hidden = False 

End If 
Next 
End If 

しかし、これを実行すると、最後のコード行にタイプミスマッチエラーが発生します。私はすべての変数をチェックしました、そして、彼らは彼らがすべきものです。 VBAは変数と組み合わせてコロン(範囲を示す)を好まないようです。私は変数なしで、または範囲なしでこれを実行できますが、私は両方を持つことはできません。提案?

+4

'ワークブック("矛盾1 ")ワークシート(1).Rows(i&": "&i + b - 1).Hidden = False'はあなたが探しているものです –

答えて

1
With Workbooks("Discrepancies1").Worksheets(1) 
    For i = 2 To lastrow 
     If .Cells(i, 8) = "USRFLG02=T" Then 
      a = .Cells(i, 46).Value 
      b = Application.CountIf(c, a) 

      .Rows(i & ":" & i + b - 1).Hidden = False 
     End If 
    Next 
End With