我使用以下宏拆分电子表格并将拆分保存到单个文件中
Sub DistributeRows()
Dim wbNew As Workbook
Dim wsData As Worksheet
Dim wsCrit As Worksheet
Dim wsNew As Worksheet
Dim rngCrit As Range
Dim LastRow As Long
Set wsData = Worksheets("Sheet1")
Set wsCrit = Worksheets.Add
LastRow = wsData.Range("A" & Rows.Count).End(xlUp).Row
wsData.Range("A1:A" & LastRow).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=wsCrit.Range("A1"), Unique:=True
Set rngCrit = wsCrit.Range("A2")
While rngCrit.Value <> ""
Set wsNew = Worksheets.Add
wsData.Range("A1:AB" & LastRow).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=rngCrit.Offset(-1).Resize(2), CopyToRange:=wsNew.Range("A1"), Unique:=True
wsNew.Name = rngCrit
wsNew.Copy
Set wbNew = ActiveWorkbook
wbNew.SaveAs "C:\Users\nahansen\Desktop\Tornstrom Reports\MMGS" & "\" & wsNew.Range("B2") & "\" & rngCrit & " - " & "December 2018"
wbNew.Close SaveChanges:=True
Application.DisplayAlerts = False
wsNew.Delete
rngCrit.EntireRow.Delete
Set rngCrit = wsCrit.Range("A2")
Wend
wsCrit.Delete
Application.DisplayAlerts = True
End Sub
我想在while循环中添加一些代码,以将数据格式化为表,例如中号15。我知道代码必须在save语句之前进入循环,但是我无法弄清楚了,因为我真的是VBA的新手,并且我正在修改其他人创建的宏,而我们刚刚使用了死记硬背。我们的目标是做到这一点,这样我们就不必手动打开数百个excel文件并单击“表格格式”按钮。
任何建议都会很棒。
答案 0 :(得分:0)
赞:
wsNew.Name = rngCrit
wsNew.ListObjects.Add(xlSrcRange, wsNew.Range("A1").CurrentRegion, , xlYes).Name = "Table1"
wsNew.ListObjects(1).TableStyle = "TableStyleMedium15"
'etc etc