2016-07-20 8 views
0

私の行(具体的には列B)をループすることができ、その行の他のセルを使用して特定の機能を実行するには、特定のセルの番号を使用する必要があります。たとえば、ルール#1は、ルール#の横にあるセルのパスの最終変更日を見つける必要があることを示しますが、タスクはルールごとに異なります。Loop through Excelの行とVBA関数の呼び出し

私はVBAの初心者です。ループを設定し、変数を別のサブシステムに渡すことには苦労しています。明確にするために、私はループと変数を渡す構文ヘルプを探しています

ありがとう!

参考画像: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

質問の体内ではなくスナップショットとしてのコードが含まれるようにあなたの質問を編集してください。 – skkakkar

+0

エラーが発生しましたか?その場合は、関数に渡す変数から括弧を外してみてください。 'RuleOne RowCount' – BruceWayne

+0

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

答えて

0

Cells(x, 2).Value = 1Range(RowCount, 1).Value = 1を変更するようにしてください。

0

変数RowCountが初期化/設定されていません。私はこれを前提とし は、私もそれが最後の行が1だった場合それは希望(必要以上の変数NUMROWSが1少ないように見えたことに気づいた

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

この変数は列Bの数であることを意味するものですスキップしてください)。だから私の代わりにこれを使用:

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

をので、このコードを試してみてください。

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 
関連する問題