發(fā)布時(shí)間:2025-03-18 文章來(lái)源:xp下載站 瀏覽:
辦公軟件是指可以進(jìn)行文字處理、表格制作、幻燈片制作、圖形圖像處理、簡(jiǎn)單數(shù)據(jù)庫(kù)的處理等方面工作的軟件。目前辦公軟件朝著操作簡(jiǎn)單化,功能細(xì)化等方向發(fā)展。辦公軟件的應(yīng)用范圍很廣,大到社會(huì)統(tǒng)計(jì),小到會(huì)議記錄,數(shù)字化的辦公,離不開辦公軟件的鼎力協(xié)助。另外,政府用的電子政務(wù),稅務(wù)用的稅務(wù)系統(tǒng),企業(yè)用的協(xié)同辦公軟件,這些都屬于辦公軟件。 Excel2007以前的格式是.xls,之后的格式是.xlsx。打開單獨(dú)的一個(gè)Excel文檔,使用“另存為”功能,可以很輕松的轉(zhuǎn)換格式。但是面對(duì)幾百個(gè)Excel表這樣就太累了,搜索很久,也沒(méi)發(fā)現(xiàn)一個(gè)工具可以直接批量進(jìn)行格式轉(zhuǎn)換。 最終發(fā)現(xiàn)可以使用VBA來(lái)實(shí)現(xiàn)批量轉(zhuǎn)換Excel格式的功能。大家不要被嚇到,VBA我也不懂,代碼是從別人那里搞到的,現(xiàn)在也只是知道了怎么使用,但這足夠解決問(wèn)題了 VBA介紹:1、VBA是一種編程語(yǔ)言,它依托于Office軟件,不能獨(dú)立的運(yùn)行,通過(guò)VBA可以實(shí)現(xiàn)各種Office軟件操作的自動(dòng)化。 2、Visual Basic for Applications(VBA)是Visual Basic的一種宏語(yǔ)言,主要能用來(lái)擴(kuò)展Windows的應(yīng)用程式功能。使用Excel的VBA開發(fā)的Excel文檔,在Excel中運(yùn)行時(shí)需要開啟Excel的宏功能,否則此文檔的VBA自動(dòng)化功能將被完全屏蔽,文檔的功能無(wú)法實(shí)現(xiàn)。 執(zhí)行條件:1、Office2007及以上版本的Excel 2、Excel啟用宏 功能介紹:先介紹這兩個(gè)工具功能,大家可以根據(jù)需要下載。 【xls-To-xlsx.xlsm】會(huì)在所在文件夾目錄中、包括子目錄中,遍歷所有.xls格式的文件,執(zhí)行“另存為”操作,然后在原文件當(dāng)前位置另存為一個(gè)同名的.xlsx格式的文件。 比如: 執(zhí)行前【xls-To-xlsx.xlsm】所在的文件夾中有4個(gè).xls格式的文件; 同時(shí)包含一個(gè)子文件夾,子文件夾中也有4個(gè).xls格式的文件。 ![]() 執(zhí)行后,會(huì)生成如下(紅色虛線內(nèi)標(biāo)注)文件: ![]() 【Convert-TO-xlsx.xlsm】會(huì)在所在文件夾目錄中(不包括子目錄),遍歷所有.xls格式的文件,執(zhí)行“另存為”操作,然后在當(dāng)前路徑下生成一個(gè)xlsx的文件夾,這個(gè)文件夾中放了所有新生成的文件。 比如: 執(zhí)行前【Convert-TO-xlsx.xlsm】所在的【Convert-TO-xlsx】文件夾中有4個(gè).xls格式的文件 ![]() 執(zhí)行后,會(huì)生成如下(紅色虛線內(nèi)標(biāo)注)文件: ![]()
執(zhí)行方法:1、下載附件,或者新建一個(gè)Excel; 2、啟用宏操作 一般情況下,打開Excel的時(shí)候,會(huì)彈出如下警告,如果彈出了這個(gè)警告,直接啟用就可以了; ![]() 如果沒(méi)有出現(xiàn)的話,請(qǐng)參考《Excel怎樣設(shè)置啟用宏功能》文章 3、編寫執(zhí)行VBA代碼 這一步新手肯定是不會(huì)的,詳細(xì)的圖文介紹就參考《Excel VBA 概述》文章。 這里只作簡(jiǎn)單的說(shuō)明:
PS:需要說(shuō)明的是,在執(zhí)行過(guò)程中,不要去做其他的操作,不然可能會(huì)中斷程序的運(yùn)行 VBA代碼內(nèi)容【xls-To-xlsx.xlsm】VBA代碼內(nèi)容 '***********訪問(wèn)當(dāng)前文件夾目錄下所有子文件夾及文件, Dim iFile(1 To 100000) As String Dim count As Integer Sub xls2xlsx() iPath = ThisWorkbook.Path On Error Resume Next count = 0 zdir iPath For i = 1 To count If iFile(i) Like "*.xls" And iFile(i) <> ThisWorkbook.FullName Then '請(qǐng)注意區(qū)分目錄下文件后綴.xls大小寫 MyFile = iFile(i) FilePath = Replace(MyFile, ".xls", ".xlsx") '請(qǐng)注意區(qū)分目錄下文件后綴.xls大小寫 If Dir(FilePath, 16) = Empty Then Set WBookOther = Workbooks.Open(MyFile) Application.ScreenUpdating = False ActiveWorkbook.SaveAs Filename:=FilePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False WBookOther.Close SaveChanges:=False '解決不能close 文件問(wèn)題 Application.ScreenUpdating = True End If End If Next End Sub Sub zdir(p) '訪問(wèn)當(dāng)前文件夾下所有子文件夾及文件 Set fs = CreateObject("scripting.filesystemobject") For Each f In fs.GetFolder(p).Files If f <> ThisWorkbook.FullName Then count = count + 1: iFile(count) = f Next For Each m In fs.GetFolder(p).SubFolders zdir m Next End Sub
《Convert-TO-xlsx.xlsm》VBA代碼內(nèi)容 Sub xls2xlsx() Dim FilePath, MyFile, iPath, Name, OutPath As String iPath = ThisWorkbook.Path OutPath = Dir(iPath & "\xlsx", vbDirectory) If OutPath = "" Then MkDir (iPath & "\xlsx") End If MyFile = Dir(iPath & "\*.xls") If MyFile <> "" Then Do On Error Resume Next If MyFile = ThisWorkbook.Name Then MyFile = Dir Workbooks.Open (iPath & "\" & MyFile) MyFile = Replace(MyFile, ".xls", ".xlsx") Name = "\" & MyFile FilePath = iPath & "\xlsx" & Name Application.ScreenUpdating = False ActiveWorkbook.SaveAs Filename:=FilePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False Workbooks(MyFile).Close True Application.ScreenUpdating = True MyFile = Dir Loop While MyFile <> "" End If End Sub
后來(lái)有同學(xué)提了些問(wèn)題,最后執(zhí)行代碼的時(shí)候,并沒(méi)有達(dá)到效果。 先來(lái)看下正常的效果,會(huì)先彈出一個(gè)對(duì)話框,然后運(yùn)行 ![]() 出問(wèn)題的原因是: 在使用過(guò)程中請(qǐng)留意Excel的后綴名【.xls 或 .XLS】大小寫區(qū)分。如果后綴大小寫不區(qū)分會(huì)導(dǎo)致了代碼不能執(zhí)行或執(zhí)行以后無(wú)效果。 針對(duì)這種情況只要將代碼中的后綴名大小寫與文件夾中的文件的后綴改成相同就可以了。 還可以用《拖把更名器》軟件,批量將文件后綴名改為小寫后再進(jìn)行操作。 ![]() Office辦公軟件是辦公的第一選擇,這個(gè)地球人都知道。 |