Excel VBA宏:将数据按日期填充到重复表格中
这个问题可以通过使用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中数据的最后一行,然后使用两个嵌套的循环,遍历所有日期和表格。在内层循环中,它会查找与当前日期匹配的表格,如果找到,则将数据填充在该表格的空白行中。如果没有找到,则在下一个空表格中添加新的日期和数据。
原文地址: https://www.cveoy.top/t/topic/lDQg 著作权归作者所有。请勿转载和采集!