Делать задание на каждую дату в таблице VBA - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть этот VBA, который создает массив на основе значений в моей таблице "Analysetable"

Sub BestilAnalyser()

Dim i As Integer
Dim j As Integer
Dim n As Integer
Dim OrderArray() As Variant
Dim xArray() As Variant


Application.ScreenUpdating = False


For i = 1 To Range("AnalyseTable").Rows.Count

    If Not IsEmpty(Range("AnalyseTable[Date]")(i)) And _
        WorksheetFunction.CountIf(Range("AnalyseTable[Bund]")(i).Offset(0, 1).Resize(1, 12), "=1") > 0 Then

        ReDim Preserve OrderArray(n)

        OrderArray(n) = i

        ReDim Preserve xArray(0 To 12 - 1, n)

        For j = 0 To 12 - 1
            If Range("AnalyseTable[Bund]")(i).Offset(0, 1 + j).Value = 1 Then
                xArray(j, n) = "x"
            End If
        Next j

        n = n + 1

    End If

Next i

Call WriteToOrderForm(OrderArray, xArray)

Call WriteEmail

For i = 0 To n - 1
    For j = 1 To 12
        If xArray(j - 1, i) = "x" Then
            Range("AnalyseTable[Bund]")(OrderArray(i)).Offset(0, j) = 2
        End If
    Next j
Next i

Application.ScreenUpdating = True

End Sub

Так что я хотел бы немного помочь, как написать VBA, чтобы он выполнялкод для каждой даты в столбце «AnalyseTable [Date]». Одна и та же дата, скорее всего, будет многократно отображаться, а затем будет запускаться VBA для всех 1 ноября, 3 ноября и так далее.

Я надеюсь, что это выполнимо.

1 Ответ

0 голосов
/ 11 ноября 2019

Может быть нормально для цикла

Dim cel As Range
For Each cel In Range("AnalyseTable[Date]")
    Debug.Print cel.Value
    ' do some your code
Next cel
...