使用表中的信息填充多个工作表

时间:2015-06-05 16:59:27

标签: excel vba excel-vba automation

我正在努力从主表中的数据中填写100个表单实例。我正在寻找一种自动化的方法。

表单包含字段NAMEDATE(以及其他字段)我希望创建一个代码,该代码将从一行中获取NAMEDATE在主表中,将其填充到单独工作表上的表单中,然后为下一行和工作表重复该过程。例如:

表1:将从行A中取NAME和DATE 表2:将从行B中取NAME和DATE 表3:将从行C获取NAME和DATE ...

我正在尝试用它来学习VB,但到目前为止还没有成功。

2 个答案:

答案 0 :(得分:1)

为了我的快速尝试,您的工作表将需要具有相似的名称,并在末尾增加数字(sheet1,sheet2,...),并将主数据表格命名为“MasterData”。此外,它假设您的名字位于A列和日期,B列,以及您从第一行开始。

Sub NameDate()
    Dim i As Integer
    For i = 1 To 100 'assuming 100 sheets
        Sheets("Sheet" & i).Range("A1") = Sheets("MasterData").Range("A" & i) 'placing the name in row i in the Sheet's A1 cell
        Sheets("Sheet" & i).Range("B1") = Sheets("MasterData").Range("B" & i) 'placing the date in row i in the Sheet's B1 cell
    Next 'next i = next row for the master data sheet AND the next sheet as well
End Sub

这是非常基本的,高度可改进的,如果您不理解,我可以在评论中解释它是如何工作的。

答案 1 :(得分:0)

尝试这样的事情: 我强烈建议您首先在单独的工作表上测试此代码,只需要几个"名称"和"约会" 如果您需要或者需要修改,请告诉我们。

使用以下代码创建一个新按钮:

Dim ColumnA As String
Dim ColumnB As String

Range("A2").Select
Do Until IsEmpty(ActiveCell)
ColumnA = ActiveCell.Value
ColumnB = ActiveCell.Offset(columnOffset:=1).Value
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
Range("A1").Value = ColumnA
Range("B1").Value = ColumnB
ThisWorkbook.Sheets("Sheet1").Activate
ActiveCell.Offset(rowOffset:=1).Select
Loop

End Sub