我正在尝试将我的Excel工作簿拆分为多个工作簿,但是代码有问题

时间:2019-10-01 19:11:39

标签: excel

我为一家举办活动的非营利组织工作。我得到了大量的注册人,每个人都属于一个特定的团队。我正在尝试将我的大型工作簿分成每个团队的各个工作簿。

我被告知过去曾经工作过的代码,但是我遇到了一些问题。这是代码本身。

Sub ParseItems()

'Jerry Beaucaire(4/22/2010)

“基于选定的列,数据被过滤到各个工作簿中

'工作簿的名称是值加上今天的日期

Dim LR一样长,Itm一样长,MyCount一样长,vCol一样长

将ws作为工作表,将MyArr作为变量,将vTitles作为字符串,将SvPath作为字符串

“其中包含数据的表

设置ws = Sheets(“ Sheet1”)

'将文件保存到的路径,请记住最后的\

SvPath = "G:\AWNY\NW 2015\Teams\Post DOE\Interim Rosters\” "

“标题横穿数据顶部的范围,必须是字符串,数据必须

'具有此行的标题,进行编辑以适合您的标题区域设置

vTitles = "A1:AB1"

'选择要进行评估的列,列A = 1,列B = 2,依此类推。

vCol = Application.InputBox(“拆分数据的列是什么?”&vbLf&vbLf&“(A = 1,B = 2,C = 3等)”,“哪个列?”,1,类型:= 1)

如果vCol = 0,则退出Sub

“发现数据底部行

LR = ws.Cells(ws.Rows.Count,vCol).End(xlUp).Row

“加快宏的执行速度

Application.ScreenUpdating = False

'从A列中获取唯一值的临时列表

ws.Columns(vCol).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ws.Range("EE1"), Unique:=True

'排序临时列表

ws.Columns("EE:EE").Sort Key1:=ws.Range("EE2"), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal

'将列表放入数组中以进行循环(值不能为公式的结果,必须为常量)

MyArr = Application.WorksheetFunction.Transpose(ws.Range("EE2:EE" & Rows.Count).SpecialCells(xlCellTypeConstants))

'清除临时工作表列表

ws.Range("EE:EE").Clear

'打开自动过滤器,只需要一列

ws.Range(vTitles).AutoFilter

“一次遍历列出一个值

For Itm = 1 To UBound(MyArr)

    ws.Range(vTitles).AutoFilter Field:=vCol, Criteria1:=MyArr(Itm)



    ws.Range("A1:A" & LR).EntireRow.Copy

    Workbooks.Add

    Range("A1").PasteSpecial xlPasteAll

    Cells.Columns.AutoFit

    MyCount = MyCount + Range("A" & Rows.Count).End(xlUp).Row - 1



    ActiveWorkbook.SaveAs SvPath & MyArr(Itm), 51

    ActiveWorkbook.Close False



    ws.Range(vTitles).AutoFilter Field:=vCol

Next Itm

“清理

ws.AutoFilterMode = False

MsgBox "Rows with data: " & (LR - 1) & vbLf & "Rows copied to other sheets: " & MyCount & vbLf & "Hope they match!!"

Application.ScreenUpdating = True

结束子

我遇到的问题是,当我运行代码时,它提示我输入要分割数据的列。我输入“ 1”(团队名称在A列中),它告诉我“运行时错误:'1004'”,并且“无法将其应用于所选范围。请选择范围中的单个单元格然后再试一次”。

我不确定该怎么做才能解决此问题,我们将不胜感激! 谢谢!

0 个答案:

没有答案