将Case Statement的结果放入数组中以转储到另一个工作表中

时间:2019-03-31 13:13:35

标签: excel vba

我有以下代码段可以在另一工作簿中复制一定范围的列。问题是我需要先评估一些列,然后再复制值。我为此使用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更改时都转储所有列

0 个答案:

没有答案