有一些数据,按照生产日期将数据填充在每一个设计好的Excel表格,表格共有7行用于填充的空白行,如果数量超出表格空白行范围的填在下一个表格空白行中,通过日期的不同确保不同日期的数据不放在一个表格中 这种功能怎么实现 并解释宏的每个参数的含义
这种功能可以通过编写VBA宏实现。具体步骤如下:
-
创建一个Excel工作簿,其中包含多个设计好的表格(每个表格有7行空白行用于填充数据)和一张数据表格(包含日期和数据)。
-
打开VBA编辑器,在工程资源管理器中双击“这个工作簿”,打开代码窗口。
-
在代码窗口中插入以下代码:
Sub FillData() Dim dataSheet As Worksheet Dim tableSheet As Worksheet Dim lastRow As Integer Dim tableRow As Integer Dim currentDate As Date Dim i As Integer
Set dataSheet = Worksheets("数据表格")
Set tableSheet = Worksheets("表格1")
lastRow = dataSheet.Cells(Rows.Count, 1).End(xlUp).Row
tableRow = 2
currentDate = dataSheet.Cells(2, 1).Value
For i = 2 To lastRow
If dataSheet.Cells(i, 1).Value <> currentDate Then
Set tableSheet = tableSheet.Next
tableRow = 2
currentDate = dataSheet.Cells(i, 1).Value
End If
If tableRow > 7 Then
Set tableSheet = tableSheet.Next
tableRow = 2
End If
tableSheet.Cells(tableRow, 1).Value = dataSheet.Cells(i, 1).Value
tableSheet.Cells(tableRow, 2).Value = dataSheet.Cells(i, 2).Value
tableSheet.Cells(tableRow, 3).Value = dataSheet.Cells(i, 3).Value
tableSheet.Cells(tableRow, 4).Value = dataSheet.Cells(i, 4).Value
tableSheet.Cells(tableRow, 5).Value = dataSheet.Cells(i, 5).Value
tableSheet.Cells(tableRow, 6).Value = dataSheet.Cells(i, 6).Value
tableSheet.Cells(tableRow, 7).Value = dataSheet.Cells(i, 7).Value
tableRow = tableRow + 1
Next i
End Sub
- 解释代码中的参数含义:
- dataSheet:数据表格所在的工作表对象。
- tableSheet:当前要填充数据的表格对象。
- lastRow:数据表格中最后一行的行号。
- tableRow:当前要填充数据的表格行号。
- currentDate:当前正在填充数据的日期。
- 运行宏。在VBA编辑器中按F5键或点击“运行”按钮即可。
通过以上代码,我们可以实现按照生产日期将数据填充在每一个设计好的Excel表格中,并且确保不同日期的数据不放在一个表格中。
原文地址: https://www.cveoy.top/t/topic/q2v 著作权归作者所有。请勿转载和采集!