资源描述:
《excel常用宏资料.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.拆分单元格赋值Sub拆分填充()DimxAsRangeForEachxInActiveSheet.UsedRange.CellsIfx.MergeCellsThenx.Selectx.UnMergeSelection.Value=x.ValueEndIfNextxEndSub2.Excel 宏 按列拆分多个excelSubMacro1() DimwbAsWorkbook,arr,rngAsRange,dAsObject,k,t,shAsWorksheet,i& Setrng=Range("A1:f1") Application.ScreenUpdating=Fa
2、lse Application.DisplayAlerts=False arr=Range("a1:a"&Range("b"&Cells.Rows.Count).End(xlUp).Row) Setd=CreateObject("scripting.dictionary") Fori=2ToUBound(arr) IfNotd.Exists(arr(i,1))Then Setd(arr(i,1))=Cells(i,1).Resize(1,13) Else Setd(arr(i,1))=Union(d(arr(i,1)
3、),Cells(i,1).Resize(1,13)) EndIf Next k=d.Keys t=d.Items Fori=0Tod.Count-1 Setwb=Workbooks.Add(xlWBATWorksheet) Withwb.Sheets(1) rng.Copy.[A1] t(i).Copy.[A2] EndWith wb.SaveAsFilename:=ThisWorkbook.Path&""&k(i)&".xlsx" wb.Close Next Appli
4、cation.DisplayAlerts=True Application.ScreenUpdating=True MsgBox"完毕"EndSub1.Excel 宏 按列拆分多个sheet在一个工作表中是许多的公司订单记录,如何将它按公司名分拆成一个个工作表,用VBA实现相当便捷。以下是演试:原始工作簿:运行VBA代码后的工作簿:代码如下:1.需要先把数据按照分拆的那一列字段排序2.如果你想应用在你的表格中,只需将所有resize(1,3)中的3修改,改成你的表格的列数。如果你总表有8列就改成resize(1,8)即可3.如果你想根据表格的第一列拆分,需要把Shee
5、t1.Cells(i,2)<>Sheet1.Cells(i-1,2)和sh.Name=Sheet1.Cells(i,2)的2换成1Subs() Application.ScreenUpdating=False DimshAsWorksheet,iAsInteger Fori=2ToSheet1.[a65536].End(3).Row If Sheet1.Cells(i,2)<>Sheet1.Cells(i-1,2) Then Worksheets.Addafter:=Worksheets(Sheets.Count) Se
6、tsh=ActiveSheet sh.Name=Sheet1.Cells(i,2) sh.Range("a1").Resize(1,3).Value=Sheet1.Range("a1").Resize(1,3).Value sh.Range("a65536").End(3).Offset(1,0).Resize(1,3).Value=Sheet1.Cells(i,1).Resize(1,3).Value Else sh.Range("a65536").End(3).O
7、ffset(1,0).Resize(1,3).Value=Sheet1.Cells(i,1).Resize(1,3).Value EndIf NextiApplication.ScreenUpdating=TrueEndSub4.Excel 宏 多工作表合并FunctionLastRow(shAsWorksheet)OnErrorResumeNextLastRow=sh.Cells.Find(what:="*",_After:=sh.Range("A1"),_Lookat:=xlPart,_LookIn:=xl