使用一个工作簿中的日期范围将数据传输到按月组织的第二个工作簿

时间:2014-02-26 01:54:07

标签: excel excel-vba excel-2007 excel-formula vba

我有一个工作簿,其中包含销售人员的预订信息。它按月分开,在每个月内,每个销售代表都有他们的预订,这些预订是在当月列出的。信息包括资金分类和生产信息,包括活动上升的日期。我必须这样做,因为代表是通过他们在那个月注册多少钱来支付的。

对于我们业务的生产方,我希望能够将这些相同的信息传输到第二个工作簿,再按月分类。但是,第二个工作簿中的月份需要显示该月份实际发生的活动,而不是签署的活动。

最好在我更新一个时,另一个也会自动更新。

所以我想要做的是让工作簿将“开始日期”列(G)中的值从2014年3月开始,然后在3月份的生产工作簿中全部显示2014年。

这样我们就不会加倍数据录入。

这有意义吗?很高兴澄清。第一个问题!

1 个答案:

答案 0 :(得分:0)

希望这对您有用,从我的测试中,它将从单元格中抓取月份和年份并将其放入另一个工作簿(确保在进行测试之前将代码中的名称更改为)到表单中工作表名称为Month Year

Sub Macro1()
    Dim wb1 As Workbook
    Dim wb2 As Workbook

    Set wb1 = ActiveWorkbook
    Set wb2 = Workbooks("Book2.xlsx")

    Dim wks1 As Worksheet
    Set wks1 = wb1.ActiveSheet

    Dim i As Long, j As Integer, lastrow1 As Long, lastrow2 As Long, mntname As String, yearname As String
    i = 1
    lastrow1 = wks1.Range("G" & Rows.Count).End(xlUp).Row


    Do While i < lastrow1 + 1
        j = month(wks1.Range("G" & i))
        mntname = monthname(j)
        yearname = Year(Range("G" & i))
        wks1.Rows(i & ":" & i).Copy
        If wb2.Sheets(mntname & " " & yearname).Range("A1") = "" Then
        wb2.Sheets(mntname & " " & yearname).Range("A1").PasteSpecial
        Else
        lastrow2 = wb2.Sheets(mntname & " " & yearname).Range("A" & Rows.Count).End(xlUp).Row
        wb2.Sheets(mntname & " " & yearname).Range("A" & lastrow2 + 1).PasteSpecial
        End If
        i = i + 1
    Loop
End Sub

非常感谢@Portland Runner帮助我在尝试使用不同的工作簿时遇到困难