根据date将数据复制到单元格

所以我有2个工作簿,helper.xlsm和每周data.xlsx我想要做的是将数据从单元格D3 G3 P3 R3和T3从helper.xlsm表11复制到每周data.xlsx表1相同的列,但不同这两个工作簿中的列B中的date基于单元格

所以这本书的数据 帮手书

以B列中的date为基础 每周数据书

我需要匹配的date,然后复制和粘贴,例如如果date= 9月19日的数据需要粘贴到第309行第20将是310等任何帮助将是伟大的,如果你可以花时间解释代码那么这将是太棒了,因为我试图学习vba

如果您正在查找将从当前文件中将某些数据复制到目标电子表格的macros,则可以尝试下面的代码。

它打开目标文件的浏览窗口,如下所示:

文件打开对话框 – 目标文件:

在这里输入图像说明

代码如下:

 Sub exportday() Dim fileStr As String, srcBk As Workbook, destBk As Workbook, rng1 As Range, rng2 As Range, tmpDt As Date Set srcBk = ThisWorkbook ChDrive srcBk.Path ChDir srcBk.Path ' get destination file fileStr = Application.GetOpenFilename("Destination file (*.xls*),*.xls*") If fileStr = "False" Then Exit Sub Set destBk = Workbooks.Open(fileStr) Sheets("day sales").Select ' get source row For Each rng1 In srcBk.Sheets(1).Columns("B").Cells If rng1 > 0 Then tmpDt = rng1 Exit For End If Next ' get destination row and update values For Each rng2 In destBk.Sheets("day sales").Columns("B").Cells If rng2 = tmpDt Then rng2.Offset(0, 2) = rng1.Offset(0, 2) 'col D rng2.Offset(0, 5) = rng1.Offset(0, 5) 'col G rng2.Offset(0, 14) = rng1.Offset(0, 14) 'col P rng2.Offset(0, 16) = rng1.Offset(0, 16) 'col R rng2.Offset(0, 18) = rng1.Offset(0, 18) 'col T Exit For End If Next destBk.Close savechanges:=True MsgBox "Spreadsheet " & fileStr & " updated.", vbInformation, "Success" End Sub 

假设:

  • 源电子表格(macros所在的位置)只有一个工作表