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