VBA在其他VBA复制的数据之后粘贴数据

时间:2018-07-18 15:22:26

标签: excel vba excel-vba copy-paste

我正在尝试在调用代码的行的最后一行之后粘贴“ Called Sub”数据。

但是,我只能设法使第一个子项粘贴选择的第一个数据,并且在调用“ ESTDEUDA”时,它将其他数据粘贴到第一次使用的信息上。

Sub ActualizarFondos()

'Deuda
J = 12

For i = 15 To 26
Sheets("Reporte").Activate

If Cells(i, "C").Value > 0 Then
Range(Cells(i, "C"), Cells(i, "B")).Copy

ActiveSheet.Range(Cells(J, "Z"), Cells(J, "AA")).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'Call ESTDEUDA

J = J + 1

End If

Next

End Sub

Sub ESTDEUDA()

J = 12

For i = 3 To 6
Sheets("FondosEstrategia").Activate

If Cells(i, "F").Value > 0 Then
Range(Cells(i, "E"), Cells(i, "F")).Select
Range(Cells(i, "E"), Cells(i, "F")).Copy


Sheets("Reporte").Activate
Range(Cells(J, "Z"), Cells(J, "AA")).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

J = J + 1

End If


End Sub

我想知道可以做些什么,以便在从表单“ Reporte”粘贴信息之后粘贴表“ FondosEstrategia”中的信息。

有没有办法将一种J = J +1应用于“ ESTDEUDA”,以便在“ ActualizarFondos”的J = J +1之后粘贴。

谢谢!

1 个答案:

答案 0 :(得分:0)

您不需要使用 /* ** Build configuration */ build: { ..., postcss: { plugins: { "postcss-custom-properties": false } }, } 。只需在第一个循环中偏移您的J值即可产生所需的i值。


在您的第一个循环上:
J
i = 15J = 12相同。

因此,您可以将i - 3的每个实例替换为J

接下来,您可以使用以下方法将i - 3作为参数(输入)传递到i中。

ESTDEUDA

Sub ActualizarFondos()

Dim i As Integer

For i = 15 To 26
    With Sheets("Reporte")
        If .Cells(i, "C").Value > 0 Then
            .Range(.Cells(i, "C"), .Cells(i, "B")).Copy
            ThisWorkbook.Sheets("WHATSHEET").Range("Z" & i - 3).PasteSpecial Paste:=xlPasteValues

            Call ESTDEUDA(i)

        End If
    End With
Next i

End Sub

此外,您还需要使用直接表单来限定Sub ESTDEUDA(i As Integer) Dim x As Long For x = 3 To 6 With Sheets("FondosEstrategia") If .Cells(x, "F").Value > 0 Then .Range(.Cells(x, "E"), .Cells(x, "F")).Copy Sheets("Reporte").Range("Z" & i - 3).PasteSpecial Paste:=xlPasteValues End If End With Next x End Sub Range的实例。您应该避免依赖CellsActive工作表。