VBA将指定多列多行数据按每一行分别填入已有多个非空sheet表格的指定位置,且待填数据仅选择已有非空sheet表格个数的前面行代码
时间: 2024-10-01 09:08:54 浏览: 32
在VBA中,处理这种需求通常涉及到循环遍历数据、计数已有的工作表,并逐行填充数据。以下是一个基本的示例代码,假设你有一个包含所有数据的范围`DataRange`,你需要填充的目标工作表存储在数组`SheetsArray`中,每个工作表都有特定的起始行`StartRows`:
```vba
Sub FillDataToWorksheets()
Dim DataRange As Range
Set DataRange = Sheet1.Range('A1:E5') ' 替换为你实际的数据范围
Dim SheetsArray() As Worksheet
SheetsArray = Array(Sheet2, Sheet4, Sheet6) ' 工作表列表
Dim i As Long, j As Long, wsCount As Long
' 获取有效工作表的数量
wsCount = UBound(SheetsArray)
For i = 1 To Rows.Count ' 遍历DataRange的行数
If Not IsEmpty(DataRange(i, 1)) Then ' 检查是否为空
For j = 0 To wsCount - 1 ' 只填充前wsCount个工作表
SheetsArray(j).Cells(DataRange(i, 1).Row, StartRows(j)).Value = DataRange(i, 1).Value ' 填充值
' ...接着填充其他列的数据
Next j
End If
Next i
End Sub
```
在这个例子中,你需要根据实际情况修改`Sheet1.Range('A1:E5')`为你的数据源位置,`Sheet2`, `Sheet4`, 和 `Sheet6` 为你要填充的目标工作表,以及`StartRows`为每个工作表需要开始填充的具体行号。
阅读全文