Помещение результатов Case Statement в массив для сброса его на другой лист - PullRequest
0 голосов
/ 31 марта 2019

У меня есть следующий фрагмент кода для копирования диапазона столбцов в другой книге. Проблема в том, что мне нужно сначала оценить несколько столбцов, прежде чем копировать значения. Я использую Case для этого, но не знаю, как передать результат, я думал в массиве?

For i = LBound(arrayOrigen) To UBound(arrayOrigen)

  With Workbooks("facturas.xlsx").Worksheets("FACTURAS")

   lastrowOrig = Application.Max(2,Cells(.Rows.Count,arrayOrigen(i)).End(xlUp).Row)

    'For each cell in column D in source ,if is 0 put 0 in each cell target(destination) column(E)_'
   ' is not then put a formula in target column'
          If i = 3 Then
                   Set Column3 = .Range(.Cells(2, arrayOrigen(i)), .Cells(lastrowOrig, arrayOrigen(i)))

       For Each xCell In Column3
            Select Case True
            Case xCell.Value = 0
            result = 0
            Case Else
            result = "=RC[-1]*0.21"
          End Select
        **Sheets("RESUMEN").Range(arrayDestino(i) & lastrowDes).Resize(lastrowOrig - 2).Value =** _
         result
        'array is needed for store the diferents result for each cell and dumping in the destination
        'column all at once?'
     Next
       Else   'for the rest of columns copy entire column whith the same values'
        Sheets("RESUMEN").Range(arrayDestino(i) & lastrowDes).Resize(lastrowOrig - 2).Value = _
            .Range(.Cells(2, arrayOrigen(i)), .Cells(lastrowOrig, arrayOrigen(i))).Value

    End If
End With
Next

Теперь я не могу показать результат Case в столбцах назначения для каждой ячейки, вместо этого он сбрасывает все столбцы при каждом изменении Case

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...