2011-03-25 50 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

相關問題