簡體   English   中英

遍歷excel行並調用VBA函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM