方法一:用VBA
感謝本文作者:http://hzwyj.spaces.live.com/blog/cns!730C63D0301AC7D0!209.entry
實(shí)現(xiàn)的功能是把多個(gè)Excel文件的第一個(gè)工作表(Sheet)合并到一個(gè)Excel文件的多個(gè)工作表里,并且新工作表的名稱等于原Excel文件的文件名。開(kāi)發(fā)環(huán)境Excel2007,但是Excel2003應(yīng)該也能用,Excel2000似乎不能用。代碼如下:
'功能:把多個(gè)工作簿的第一個(gè)工作表合并到一個(gè)工作簿的多個(gè)工作表,新工作表的名稱等于原工作簿的名稱
Sub Books2Sheets()
'定義對(duì)話框變量
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
'新建一個(gè)工作簿
Dim newwb As Workbook
Set newwb = Workbooks.Add
With fd
If .Show = -1 Then
'定義單個(gè)文件變量
Dim vrtSelectedItem As Variant
'定義循環(huán)變量
Dim i As Integer
i = 1
'開(kāi)始文件檢索
For Each vrtSelectedItem In .SelectedItems
'打開(kāi)被合并工作簿
Dim tempwb As Workbook
Set tempwb = Workbooks.Open(vrtSelectedItem)
'復(fù)制工作表
tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i)
'把新工作簿的工作表名字改成被復(fù)制工作簿文件名,這兒應(yīng)用于xls文件,即Excel97-2003的文件,如果是Excel2007,需要改成xlsx
newwb.Worksheets(i).Name = VBA.Replace(tempwb.Name, ".xls", "")
'關(guān)閉被合并工作簿
tempwb.Close SaveChanges:=False
i = i + 1
Next vrtSelectedItem
End If
End With
Set fd = Nothing
End Sub
方法二:
錄制一個(gè)新宏:打開(kāi)一個(gè)excel文件、復(fù)制、粘貼、關(guān)閉;
然后在菜單[工具]-》[宏]-》VB編輯器 里修改這個(gè)宏,
只要改文件名就能復(fù)制下一個(gè)excel文件,
很多的話,做循環(huán)最好,你如果不會(huì),就只好復(fù)制800遍那些語(yǔ)句,改800遍文件名了。
運(yùn)行這個(gè)宏,它會(huì)自動(dòng)替你一個(gè)一個(gè)地打開(kāi)、復(fù)制、粘貼、關(guān)閉。
不會(huì)再有比一個(gè)一個(gè)復(fù)制更簡(jiǎn)單的辦法了。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。