2017-10-27 9 views
0

私はエクセルVBAでコード内に正確な行がないExcelでVBAを使用しますか?

If InStr(1, ActiveSheet.Range("C7").Value, "ž") Then 
    ActiveSheet.Rows("8").RowHeight = 0 
     Else 
    ActiveWorkbook.Sheets("My").Visible = True 
    ActiveSheet.Rows("8").RowHeight = 27 
End If 

をこのコードを持っていません。しかし、私はExcelの行番号C7および8に新しい行を挿入した場合、もはや7と8どのように私は私の中で動く事を可能にし、より良い私のコードを書くことができていますExcelを挿入して新しい行を挿入せずにコードを編集する必要があります。

私は何かsimularをExcelで式を書くと思う。数式を移動すると、数はすべてとにかく動作します。

+1

いくつかのオプションがあります。 (1)コード内で使用する行に固有の値がある場合は、それを検索してコード内で使用する行番号を指定します。 (2)それが常に「最初か最後の」行であれば、それも見つけることができます。 –

+3

名前付き範囲を使用します(例: 'ActiveSheet.Range(" MyRange ")。Value)。 – omegastripes

答えて

0

変数を使用する必要があります。

Dim row, column As Integer 
column = 7 
For row = 1 to ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row 
     If InStr(1, ActiveSheet.Cells(row, column).Value, "ž") Then 
      ActiveSheet.Rows(row - 1).RowHeight = 0 
       Else 
      ActiveWorkbook.Sheets("My").Visible = True 
      ActiveSheet.Rows(row - 1).RowHeight = 27 
     End If 
Next row 

条件を確認するために行を繰り返すことができます。あなたは簡単に、列内を別のループで繰り返すことができます。

関連する問題