2016-07-20 13 views
0

Ich muss in der Lage sein, durch meine Zeilen (insbesondere Spalte B) zu durchlaufen, und verwenden Sie die Nummer in einer bestimmten Zelle, um bestimmte Funktionen mit anderen Zellen in dieser Zeile zu tun. Zum Beispiel gibt Regel 1 an, dass ich das letzte Änderungsdatum des Pfades in der Zelle neben der Regel # finden muss, aber die Aufgabe ist für jede Regel anders.Schleife durch Excel-Zeilen und Aufruf VBA-Funktionen

Ich bin neu in VBA und ich habe gerade mit dem Einrichten einer Schleife und Weitergabe von Variablen an verschiedene Subs gekämpft und würde jede Hilfe sehr schätzen. Um klar zu sein, suche ich nach Syntax-Hilfe mit der Schleife und Variablen übergeben

Vielen Dank! Bilder

Referenz: The spreadsheet

The attempt at sketching out the code

Private Sub CommandButton1_Click() 
    Dim x As Integer 
    NumRows = Range("B2", Range("B2").End(xlDown)).Rows.Count 
    Range("B2").Select 
    For x = 1 To NumRows 
     If Range(RowCount, 1).Value = 1 Then 
      RuleOne (RowCount) 
     End If 
    Next 

    'Dim RowCount As Integer 
    'RowCount = 1 
    'Worksheets("Sheet2").Cells(1, 2) = Worksheets("Sheet1").UsedRange.Row.Count 

    'While RowCount < Worksheets("Sheet1").Rows 
     'If Worksheets("Sheet1").Cells(RowCount, 1).Value = 1 Then 
      'RuleOne (RowCount) 
     'End If 
    'Wend 
End Sub 

Sub RuleOne(i As Integer) 
    'use filedatetime and path from i cell 
    'Worksheets("Sheet2").Cells(1, 1) = FileDateTime(C, i) 
    Worksheets("Sheet2").Cells(1, 1) = "hello" 
End Sub 

Sub RuleTwo(i As Integer) 
    Worksheets("Sheet2").Cells(1, 1) = "hello" 
End Sub 
+4

Bitte bearbeiten Sie Ihre Frage Code in den Körper der Frage enthalten und nicht als Momentaufnahme. – skkakkar

+0

Erhalten Sie Fehler? Wenn ja, versuchen Sie, die Klammern von den Variablen zu entfernen, die Sie an die Funktion übergeben. 'RuleOne RowCount' – BruceWayne

+0

http://stackoverflow.com/questions/22645347/loop-through-all-subfolders-using-vba –

Antwort

0

Versuchen Sie, die Range(RowCount, 1).Value = 1-Cells(x, 2).Value = 1 zu ändern.

0

Die Variable RowCount wurde nicht initialisiert/gesetzt. ich das annehmen, was diese Variable die Zahl in Spalte B

RowCount = Cells(x, "B").Value 

Ich habe auch bemerkt zu sein bedeutet, dass die Variable NumRows ein kleiner zu sein schien, als es (so sein sollte, wenn die letzte Zeile 1 war, würde es überspring es). So habe ich diese statt:

NumRows = Cells(Rows.Count, "B").End(xlUp).Row 

So versuchen, diesen Code:

Sub CommandButton1_Click() 
    Dim x As Integer 
    NumRows = Cells(Rows.Count, "B").End(xlUp).Row 
    For x = 1 To NumRows 
     RowCount = Range("B" & x).Value 
     If RowCount = 1 Then 
      RuleOne (x) 
     End If 
    Next 

    'Dim RowCount As Integer 
    'RowCount = 1 
    'Worksheets("Sheet2").Cells(1, 2) = Worksheets("Sheet1").UsedRange.Row.Count 

    'While RowCount < Worksheets("Sheet1").Rows 
     'If Worksheets("Sheet1").Cells(RowCount, 1).Value = 1 Then 
      'RuleOne (RowCount) 
     'End If 
    'Wend 
End Sub 

Sub RuleOne(i As Integer) 
    'use filedatetime and path from i cell 
    'Worksheets("Sheet2").Cells(1, 1) = FileDateTime(C, i) 
    Worksheets("Sheet2").Cells(1, i) = "hello" 
End Sub 

Sub RuleTwo(i As Integer) 
    Worksheets("Sheet2").Cells(1, 1) = "hello" 
End Sub