这个问题可以通过使用Excel中的VBA宏来解决。下面是一个示例代码,可以实现这个功能:

Sub FillData()

Dim wb As Workbook
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 wb = ThisWorkbook
Set ws1 = wb.Sheets('Sheet1')
Set ws2 = wb.Sheets('Sheet2')

lastRow = ws1.Range('A' & Rows.Count).End(xlUp).Row

For i = 2 To lastRow
    '查找当前日期在Sheet2中的哪个表格中
    For j = 1 To ws2.UsedRange.Rows.Count Step 10
        If ws2.Cells(j, 1) = ws1.Cells(i, 1) Then
            '将数据填充在空白行中
            For k = 4 To 10
                If ws2.Cells(j + k - 4, 2) = '' Then
                    ws2.Cells(j + k - 4, 2) = ws1.Cells(i, 2)
                    Exit For
                End If
            Next k
            Exit For
        ElseIf ws2.Cells(j, 1) = '' Then
            '如果当前表格为空,则添加日期和数据
            ws2.Cells(j, 1) = ws1.Cells(i, 1)
            ws2.Cells(j + 1, 1) = '标题1'
            ws2.Cells(j + 2, 1) = '标题2'
            ws2.Cells(j + 3, 1) = '标题3'
            ws2.Cells(j + 4, 2) = ws1.Cells(i, 2)
            Exit For
        End If
    Next j
Next i

End Sub

这个宏首先找到Sheet1中数据的最后一行,然后使用两个嵌套的循环,遍历所有日期和表格。在内层循环中,它会查找与当前日期匹配的表格,如果找到,则将数据填充在该表格的空白行中。如果没有找到,则在下一个空表格中添加新的日期和数据。

Excel VBA宏:将数据按日期填充到重复表格中

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

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