2017-05-16 9 views
0

ich Code in VBA zu schreiben, und ich versuche, die Folgendes zu erreichen:Get Zelle aus Reihe

  • Wählen Sie einen Bereich aus einem Blatt
  • Schleife durch diesen Bereich der Reihen
  • Vergleichen Sie die 3-Zellen-Wert in der Zeile auf einen Wert
  • Do Zeug ....

ich durch das Internet gesucht, aber nicht fand eine Möglichkeit, dass die 3. Zelle zugreifen ...

Vielen Dank im Voraus!

Einige Code für Sie Nerds:

For Each ProdRow In DayProd.Rows 
    saisi = False 
    Do While ((Not IsEmpty(Selection.Value)) And (Not saisi)) 
    If (Selection.Value = ProdRow(*Select that 3rd cell*).Value) Then 
     ....     
    End If 
    Loop 
Next 
+1

Sie würden davon profitieren, Folgendes zu lesen: [Wie Sie die Verwendung von Select in Excel VBA-Makros vermeiden] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba -Makros). Sie suchen auch nach der Eigenschaft [Range.Offset] (https://msdn.microsoft.com/en-us/library/office/ff840060.aspx). Schwer, mehr Tipps ohne mehr Informationen zu geben. – tigeravatar

+0

'Wenn Selection.Value = ProdRow.Offset (0, 3) .Cells (1, 1) .Wert Then' – omegastripes

+0

Ich verwende nicht Select, ich suche nur die Art und Weise, auf eine Zelle zu verweisen: jede Zeile enthält drei Zellen (das sind 3 Spalten), wie geht das? – Hamza

Antwort

1

Sie könnten die Offset Funktion wie @ omegasripes verwenden erwähnt

Oder die Cells Funktion:

Cells(ProdRow.Row, ProdRow.Column+3) 

Oder wenn Sie die dritte Spalte wollen ("C") dieser Zeile gerade:

Cells(ProdRow.Row, 3) 
+0

Die ProdRow-Adresse ist $ C $ 4: $ E $ 4, gibt es keine Möglichkeit, auf diese Zellen innerhalb des Zeilenbereichs zu verweisen? – Hamza

+0

ja, wenn dies Ihre Adresse ist, dann können Sie auf die dritte Spalte wie folgt verweisen: 'ProdRow.Columns (3) .Value' – Holger