2011-03-25 53 views
0

我有一个包含两列数据的Excel工作表。列A具有所需的新工作簿名称,列B的相邻单元具有我在新工作簿中需要的数据。使用数据创建,命名并填充新工作簿

所以,如果032411在列A和50是在B列,则宏将创建一个名为03241150将在工作簿的单元A1新的工作簿。

回答

2

您可以使用此:

Sub CreateBooks() 

    Dim oCell As Excel.Range 
    Dim oWorkbook As Excel.Workbook 

    'Added to avoid messages asking to confirm overwriting 
    ' previous existent files with same name 

    Application.DisplayAlerts = False 

    For Each oCell In Range("A:A") 

     If oCell.Value = "" Then Exit For 

     Set oWorkbook = Workbooks.Add 

     oWorkbook.Sheets(1).Cells(1, 1).Value = oCell.Offset(0, 1).Value 

     'If the cell value contains only the file name (instead of the whole path 
     ' the file needs to be saved) it will save into MyDocuments folder 
     oWorkbook.Close True, oCell.Value 

    Next oCell 

    Application.DisplayAlerts = True 

End Sub 

如果你有几个文件生成,则可以选择使用application.ScreenUpdating = False

+0

谢谢蒂亚戈。这是一个巨大的飞跃。它只需要现在调整。该宏生成所有新的工作簿,但没有用来自单元格A1的值重命名它们并将其保存。我试图按照建议更新它,但不能缝合以使其正确。 – 2011-03-25 17:44:27

+0

另外值得注意的是文件名MMDDYY在许多情况下在开头包含零并使用自定义单元格格式。当公式栏上单击单元格时,将日期显示为M/DD/YYYY。 – 2011-03-25 17:59:12

+0

按照你的例子,我们需要保存一个名为032411.xls的文件,对吧?我相信它已经发生了,我需要澄清一下你需要什么/我们现在拥有什么以及你需要什么/我们拥有什么。 – 2011-03-25 19:06:15

相关问题