Excel VBA - 将变量命名工作表中的数据复制到特定工作表

时间:2017-06-13 10:07:40

标签: excel vba excel-vba excel-formula

我有4个“转移”程序的代码。我想要做的是类似于复制并粘贴到列中的最后一个活动单元格。这个过程很好但互相重叠。

我遇到的另一个问题是,我似乎无法使代码适用于表1到10 。我需要让它i + 3使它工作,但它不能正常工作。我仍然缺少3张纸。只制作1 to 7

代码如下:

Sub transfer_exp()

Dim ws As String
Dim n As Integer
Dim i As Long
Dim sheet As Worksheet
Dim orow As Integer
Dim lrow As Long
Dim c As Range
Dim ewt As Range
Dim vat As Range
Dim vatx As Range

n = Sheets("Start").Range("c24").Value + 3

If n > 0 Then
    For i = 3 To n

        Dim desrow As Integer
        desrow = i - 1
        rng = Range("AA11:AA40")
        Set sheet = Sheets(i)
        lrow = Cells(Rows.Count, 1).End(xlUp).Row + 1

        Dim origcol As Integer
        origcol = 1

        Dim origrow As Integer
        origrow = 11

            For Each c In sheet.Range("AA11:AA40")
                If c > 0 Then

                    'Header lines
                    Sheets("OFFLIMITS").Cells(lrow, 1).Value = Sheets(i).Cells(3, 3).Value 'Vendor
                    Sheets("OFFLIMITS").Cells(lrow, 2).Value = Sheets(i).Cells(2, 3).Value 'Transaction Date
                    Sheets("OFFLIMITS").Cells(lrow, 3).Value = Sheets(i).Cells(4, 3).Value 'RefNumber
                    Sheets("OFFLIMITS").Cells(lrow, 4).Value = Sheets(i).Cells(5, 3).Value 'Bill Due
                    Sheets("OFFLIMITS").Cells(lrow, 5).Value = Sheets(i).Cells(6, 3).Value 'Terms
                    Sheets("OFFLIMITS").Cells(lrow, 6).Value = Sheets(i).Cells(7, 3).Value 'Memo

                    'Expense lines
                    Sheets("OFFLIMITS").Cells(lrow, 7).Value = Sheets(i).Cells(origrow, 5).Value 'Expenses Account
                    Sheets("OFFLIMITS").Cells(lrow, 8).Value = Sheets(i).Cells(origrow, 15).Value 'Expenses Amount
                    Sheets("OFFLIMITS").Cells(lrow, 9).Value = Sheets(i).Cells(origrow, 22).Value 'Expenses Memo
                    Sheets("OFFLIMITS").Cells(lrow, 10).Value = Sheets(i).Cells(origrow, 7).Value 'Expenses Class

                    'row locators
                    lrow = lrow + 1
                    origrow = origrow + 1
                End If
            Next c
    Next i

End If

End Sub

此代码与下一个与结果重叠的代码非常相似。当然除了一些细节。但在流程方面,90%相同。我想知道我错过了什么。或者我提交的任何错误都会使目标单元格中​​的数据重叠。先谢谢你们。更多力量。 :)

0 个答案:

没有答案