我有一个工作簿,其中包含销售人员的预订信息。它按月分开,在每个月内,每个销售代表都有他们的预订,这些预订是在当月列出的。信息包括资金分类和生产信息,包括活动上升的日期。我必须这样做,因为代表是通过他们在那个月注册多少钱来支付的。
对于我们业务的生产方,我希望能够将这些相同的信息传输到第二个工作簿,再按月分类。但是,第二个工作簿中的月份需要显示该月份实际发生的活动,而不是签署的活动。
最好在我更新一个时,另一个也会自动更新。
所以我想要做的是让工作簿将“开始日期”列(G)中的值从2014年3月开始,然后在3月份的生产工作簿中全部显示2014年。
这样我们就不会加倍数据录入。
这有意义吗?很高兴澄清。第一个问题!
答案 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帮助我在尝试使用不同的工作簿时遇到困难