Как запустить все функции из значений, указанных в «массиве» в VBA Excel - PullRequest
0 голосов
/ 12 мая 2019

Столбец «Столбцы (« H »). Значение» содержит значения от 1 до 3, которые относятся к функциям от E_1 до E_3.Например, если столбец H содержит значения в порядке «1,2,3», то макрос разделяет эти значения на «,» и запускает функции с E_1 по E_2 после другого.Однако, если кто-то решит поместить больше значений в столбец, например, от 1 до 10, вам придется записать 10 раз «P = x» для каждого значения, и это будет громоздко.

Решение состоит в том, чтобы иметь массив, который считывает все значения в данном столбце / ячейке и запускает, согласно этим значениям, соответствующие функции за другой, пока одна функция не станет истинной.

***********
Function E_1 (ByVal t As Long, ByVal roh As Worksheet) As Boolean
…..
Function E_2 (ByVal t As Long, ByVal roh As Worksheet) As Boolean
…
Function E_3 (ByVal t As Long, ByVal roh As Worksheet) As Boolean
…..
*************
Sub G_Klicken()
Set roh = Worksheets("Roh")
Set regel = Worksheets("regeln")
Dim test() As String
Dim result As Boolean
t = 2  
Do
    cell = roh.Range("A" & t)
    Set foundvalue = regel.Range("A1:A1854").Find(cell)
        test= Split(regel.Rows(foundvalue.Row).Columns("H").Value, ",")
            For Each P In test
If P = "1" Then
                   result = E_01(t, roh)
…
End if

If P = "2" Then
                    result = E_02(t, roh)
…
End if

If P = "3" Then
                    result = E_03(t, roh)
…
End if

Loop Until….
End Sub
...