資源描述:
《EXCEL常用VBA代碼大全》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、刪除B列中字符串?dāng)?shù)值少于21的單元格所在的行Sub刪除行()r=Range("B65536").End(xlUp).Row'行數(shù)Forh=rTo1Step-1IfCells(h,2)<21ThenCells(h,2).EntireRow.DeleteNextEndSub-------------------------【工作表合并】將同一工作簿中的所有工作表合并到一個工作表中新建一個工作表,寫入代碼[在新建的工作表標(biāo)簽處右鍵查看代碼(找不到的直接按一下alt+F11)把下面的代碼復(fù)制進(jìn)去然后點上面的運(yùn)行運(yùn)行子程序即可]:Sub合并當(dāng)前工作簿下的所有工作表()Applic
2、ation.ScreenUpdating=FalseForj=1ToSheets.CountIfSheets(j).Name<>ActiveSheet.NameThenX=Range("A65536").End(xlUp).Row+1Sheets(j).UsedRange.CopyCells(X,1)EndIfNextRange("B1").SelectApplication.ScreenUpdating=TrueMsgBox"當(dāng)前工作簿下的全部工作表已經(jīng)合并完畢!",vbInformation,"提示"EndSub***************************
3、******************************代碼這樣寫也行:Subc()Fori=Sheets.CountTo2Step-1Sheets(i).SelectSheets(i).UsedRange.CopySheets(1).SelectCells(Cells(65000,1).End(xlUp).Row+1,1).SelectActiveSheet.Paste'Sheets(i).DeleteNextiEndSub************************************************************把一個工作簿中的所有表
4、單合并成一個表單,怎么去掉重復(fù)的表頭、標(biāo)題行?方法如下:Subc()Fori=Sheets.CountTo2Step-1Sheets(i).UsedRange.Offset(1).CopySheets(1).Cells(65536,1).End(xlUp).Offset(1)NextiEndSub說明:函數(shù)OFFSET(reference,rows,cols,height,width)以指定的引用為參照系,通過給定偏移量得到新的引用。返回的引用可以為一個單元格或單元格區(qū)域。并可以指定返回的行數(shù)或列數(shù)。通俗的講就是OFFSET(參考單元格,移動的行數(shù),移動的列數(shù),所要引用
5、的行數(shù),所要引用的列數(shù))參考《關(guān)于offset函數(shù)》第三行中第一個offset(1)是假設(shè)要要去掉的表頭行數(shù),如果有2行表頭,就改成offset(2),要去掉幾行表頭括號中的數(shù)字就改成幾。第二個offset(1)表示合并以后表格與表格之間要間隔的空行,offset(1)表示不留空行,offset(2)表示間隔1行空行,以此類推。也可以這樣寫:Subc()Fori=Sheets.CountTo2Step-1Sheets(i).UsedRange.Offset(2).CopySheets(1).Cells(Cells(65536,1).End(xlUp).Row+1,1).
6、Offset(0)‘這個offset(0)可以不要NextiEndSub****************************************************************或者用以下宏代碼將同一工作簿中的所有工作表合并到一個新建的工作表中按ALT+F11調(diào)出VBA窗口,插入一個模塊,然后把下面的代碼復(fù)制進(jìn)去。Subhz()SetNewSheet=Sheets.Add(Type:=xlWorksheet)'生成一個新表Sheets(NewSheet.Index).MoveBefore:=Sheets(1)'將此新表移動到最前面Fori=2ToW
7、orksheets.CountSheets(i).UsedRange.CopyNewSheet.Cells([a65536].End(xlUp).Row+2,1)'將其他表的已使用區(qū)域復(fù)制到新表中NextiMsgBox"合并完成"EndSub這段代碼很簡單,其中第四行中用FOR循環(huán)得到當(dāng)前工作簿中的所有工作表,第五行中使用UsedRange得到每個工作表的“已使用區(qū)域”,然后用copy方法把這些“已使用區(qū)域”中的內(nèi)容復(fù)制到新建工作表中。語句Cells([a65536].End(xlUp).Row+2,1)的作用是得到新建工作表的A列中的最