[英]Loop through excel rows and call VBA functions
我需要能夠遍歷我的行(特別是B列),並使用特定單元格中的數字,以便使用該行中的其他單元格執行特定功能。 例如,規則1表示我需要在規則#旁邊的單元格中找到路徑的最后修改日期,但是每個規則的任務都不同。
我是VBA的新手,我一直在努力建立一個循環並將變量傳遞到不同的子程序,並非常感謝您的幫助。 明確地說,我正在尋找有關循環和傳遞變量的語法幫助
謝謝!
參考圖片: 電子表格
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
嘗試將Range(RowCount, 1).Value = 1
更改為Cells(x, 2).Value = 1
。
變量RowCount尚未初始化/設置。 我假設這就是該變量的含義,即B列中的數字
RowCount = Cells(x, "B").Value
我還注意到,變量NumRows似乎比應有的小1(因此,如果最后一行為1,它將跳過它)。 所以我改用了這個:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.