|
原帖由 bluewindeva 于 2010-8-3 11:53 发表
还有个问题,不知道能不能实现,现在是每一行单独建立新文件,能不能制定的某几行建立一个文件,比如第3~5行,第49~52行……这样的呢
其实只要修改一下循环属性就可以做到了,以下代码供参考:
注意,行号区间的输入一定要规范,没有加容错处理,各区间用西文的“,”分隔,两个行号之间用“-”分隔。
- Sub 生成分数条()
- Dim wbkTemp As Workbook, k As Range, i%, str$, arr1, arr2
- str = InputBox("请输入要生成分数条的记录所在的行号区间:" & vbCrLf & "格式如:3-5,7,8,12-25", "请输入数据——")
- If str = "" Then Exit Sub
- Application.ScreenUpdating = False '关闭屏幕刷新
- arr1 = Split(str, ",") '分解行号区间字符串
- With ThisWorkbook.Sheets("Sheet1")
- For i = 0 To UBound(arr1) '在各行号区间(即“,”分隔的)内循环
- arr2 = Split(arr1(i) & "-", "-") '分解行号区间
- Set wbkTemp = Workbooks.Add '新建Excel工作薄
- .Range("A1:O2,A" & arr2(0) & ":O" & IIf(arr2(1) = "", arr2(0), arr2(1))).Copy wbkTemp.Sheets(1).[A1] '复制对应数据到新建的工作薄中
- Application.CutCopyMode = False '取消剪切复制模式
- wbkTemp.SaveAs Filename:=ThisWorkbook.Path & "" & Format(i + 1, "000") & "-分数条汇总.xls", FileFormat:=xlExcel8 '保存新建的工作薄
- wbkTemp.Close '关闭新建的工作薄
- Next
- Set wbkTemp = Nothing '释放对象
- End With
- Application.ScreenUpdating = True '打开屏幕刷新
- MsgBox "分数条全部生成在本文件同目录下!", vbInformation
- End Sub
复制代码 |
|