Excel 多工作簿数据填充技巧:将 Sheet1 数据按日期填充到 Sheet2 多个表格

本文将介绍如何使用 VBA 宏将 Excel 中 Sheet1 的数据按日期顺序填充到 Sheet2 中的多个表格。Sheet1 中的 A 列为日期,数据从 A1 到 A10 列,Sheet1 共有 1 到 100 行数据。Sheet2 中有多个重复表格,每个表格包含 10 行,前三行为标题行,第 4 至 10 行为空白行,第 11 行至 20 行为新的表格以此类推每 10 行一个表格。要求按照 sheet1 中的 A1 列的不同日期将全部数据填充在 sheet2 的表格空白行里,如果填不下就填在下一个表格里,使得不同日期的数据不允许填充在一个表格里。

实现思路

  1. 找到第一个空白表格: 在 Sheet2 中找到第一个空白表格,即第一个所有行都为空白的表格。
  2. 遍历 Sheet1 数据: 按照日期顺序遍历 Sheet1 中的数据。
  3. 填充数据: 将数据填充到空白表格的空白行中,从第 4 行开始填充。
  4. 切换表格: 如果一个表格填满了,就切换到下一个空白表格继续填充。
  5. 重复步骤 3 和 4,直到所有数据都填充完毕。

VBA 代码示例

Sub FillData()
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim j As Long
    Dim k As Long
    
    Set ws1 = ThisWorkbook.Worksheets('Sheet1')
    Set ws2 = ThisWorkbook.Worksheets('Sheet2')
    
    k = 1 ' 用于记录当前是填充到了哪一张表格
    For i = 2 To ws1.Cells(ws1.Rows.Count, 'A').End(xlUp).Row ' 遍历 sheet1 中的日期列
        lastRow = ws2.Cells(ws2.Rows.Count, 'A').End(xlUp).Row ' 找到最后一行
        For j = 1 To 10 ' 每张表格有 10 行
            If ws2.Cells(lastRow + j, 'A') = '' Then ' 找到第一个空白行
                ws2.Cells(lastRow + j, 'A') = ws1.Cells(i, 'A') ' 填充日期
                ws2.Cells(lastRow + j, 'B') = ws1.Cells(i, j + 1) ' 填充数据
                If j = 7 Then ' 如果填充到了第 10 行
                    k = k + 1 ' 换到下一个表格
                End If
                Exit For ' 填充完毕,退出循环
            End If
        Next j
    Next i
    
    ThisWorkbook.Save ' 保存工作簿
End Sub

代码解释

  1. 声明变量: 定义必要的变量,包括工作表对象、最后一行行号、循环计数器等。
  2. 设置工作表: 设置两个工作表对象,分别代表 Sheet1 和 Sheet2。
  3. 循环遍历数据: 使用 For 循环遍历 Sheet1 中的日期列,从第二行开始遍历。
  4. 找到空白行: 使用 For 循环遍历 Sheet2 中的表格,从最后一行开始,找到第一个空白行。
  5. 填充数据: 将 Sheet1 中的日期和数据填充到找到的空白行中。
  6. 切换表格: 如果填充到了第 10 行,则切换到下一个空白表格。
  7. 保存工作簿: 填充完毕后,保存工作簿。

使用方法

  1. 打开 Excel 工作簿,按 Alt + F11 进入 VBA 编辑器。
  2. 在 VBA 编辑器中插入一个模块(Insert -> Module)。
  3. 将上面的代码复制到模块中。
  4. 按 F5 运行代码。

注意事项

  • 确保 Sheet1 中的 A 列为日期列,数据从 A1 到 A10 列。
  • 确保 Sheet2 中的表格结构如上所述。
  • 如果 Sheet2 中的表格数量不足以容纳所有数据,请手动添加更多表格。
  • 可以根据实际情况调整代码中的表格大小和填充数据范围。

希望本文能够帮助你快速、高效地将 Sheet1 的数据填充到 Sheet2 中的多个表格。如果你还有其他 Excel 数据处理问题,欢迎留言讨论。

Excel 多工作簿数据填充技巧:将 Sheet1 数据按日期填充到 Sheet2 多个表格

原文地址: https://www.cveoy.top/t/topic/lDTM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录