2017-10-27 10 views
0

Ich habe diesen Code in Excel VBAVerwenden Sie VBA in Excel ohne genaue Zeilen im Code?

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 

Aber wenn ich eine neue Zeile in Excel Zeilennummer C7 einfügen und 8 ist nicht mehr 7 und 8. Wie kann ich meinen Code besser schreibe meinen Umzug Dinge zu ermöglichen, in Excel und neue Zeilen einfügen, ohne dass ich meinen Code bearbeiten muss.

Ich denke, etwas Ähnliches, um eine Formel in Excel zu schreiben. Wenn du die Formel und die Zahlen verschiebst, funktioniert sowieso alles.

+1

Sie haben mehrere Möglichkeiten. (1) Wenn in der Zeile, die Sie in Ihrem Code verwenden möchten, ein eindeutiger Wert vorhanden ist, können Sie nach dem Wert suchen, der die in Ihrem Code zu verwendende Zeilennummer enthält. (2) Wenn es immer die erste oder letzte Zeile ist, kannst du das auch finden. –

+3

Verwenden Sie benannte Bereiche, zB 'ActiveSheet.Range (" MyRange "). Value'. – omegastripes

Antwort

0

Sie müssen mit Variablen arbeiten.

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 

Sie könnten über Zeilen iterieren, um Ihren Zustand zu überprüfen. Sie könnten leicht über die Spalten mit einer anderen Schleife innerhalb iterieren.