可以先在sheet2中找到第一个空白的表格,然后按照日期顺序遍历sheet1中的数据,将数据填充到空白行中,如果一张表格填满了,就找下一个空白表格继续填充,直到所有数据都填充完毕。

具体实现可以使用VBA编写宏来实现。首先需要定义两个工作表对象,然后使用循环遍历sheet1中的日期列,找到空白的表格,从第4行开始填充数据,如果填充到第10行了就跳到下一个空白表格。最后保存工作簿即可。

以下是一个示例代码:

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

Excel中有两个工作簿,sheet1中有数据A1到A10列,共有1到100行,A1列为日期,其余为普通数据,sheet2中有很多个重复表格,表格大小为A1到A10列,有10行,1至3行为标题行,第4至10行为空白行,第11行至20行为新的表格以此类推每10行一个表格,要求按照sheet1中的A1列的不同日期将全部数据填充在sheet2的表格空白行里,如果填不下就填在下一个表格里,使得不同日期的数据不允许填充在一个表格里。你有什么思路能讲给我吗

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

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