一个excel里有sheet1到sheet10,如何用宏来实现:点击按钮将sheet2到sheet

一个excel里有sheet1到sheet10,如何用宏来实现:点击按钮将sheet2到sheet5分别另存为单独的excel工作簿,且将其中公式转化成文本或数值,新ex... 一个excel里有sheet1到sheet10,如何用宏来实现:点击按钮将sheet2到sheet5分别另存为单独的excel工作簿,且将其中公式转化成文本或数值,新excel以各自的工作表名命名,如sheet2另存的excel命名为“sheet2”。保存路径为原excel所在路径。 展开
 我来答
鱼木混猪哟
高粉答主

2015-12-23 · 专注Office,尤其Excel和VBA
鱼木混猪哟
采纳数:6078 获赞数:33684

向TA提问 私信TA
展开全部
方法太笨
等巧方法

Sub 复制工作表()
For i = 2 To 5
ThisWorkbook.Sheets("Sheet" & i).Copy
Set bok = ActiveWorkbook
bok.Sheets(1).Cells.Copy
bok.Sheets(1).Cells.PasteSpecial Paste:=xlPasteValues
bok.SaveAs ThisWorkbook.Path & "\" & "Sheet" & i & ".xlsx"
bok.Close
Next i
End Sub
追问
你写的也很好,好想也给你分。
只能再次谢谢你了
小李无刀
2015-12-23 · TA获得超过6359个赞
知道大有可为答主
回答量:8829
采纳率:78%
帮助的人:4948万
展开全部
Sub 工作表拆分()

Dim sht As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False

'以下是拆分工作表

For Each sht In Sheets
sht.Copy
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & sht.Name & ".xls"

'以下是转为数值

ActiveWorkbook.ActiveSheet.Cells.Copy
ActiveWorkbook.ActiveSheet.Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'完成
ActiveWorkbook.Close
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
世界喜欢不一样
2015-12-23 · TA获得超过2372个赞
知道大有可为答主
回答量:1546
采纳率:50%
帮助的人:624万
展开全部
这个问题不是太复杂,先Mark一下,稍后上代码和附件.
更多追问追答
追问
哎,真羡慕你们这些会vba编程的高手
追答

Alt+F11打开VBE编辑窗口,插入--模块,复制粘贴代码,F5运行.

Sub Sheets2Workbooks()
    Dim i As Integer, iPath As String
    Const iStart = 2 '开始工作表
    Const iEnd = 5 '结束工作表
    iPath = ThisWorkbook.Path & "\" '保存路径
    Application.ScreenUpdating = False '关闭屏幕更新
    If Sheets.Count < iStart Or Sheets.Count < iEnd Then MsgBox "error": Exit Sub '如果工作表总数小于开始工作表或结束工作表,报错后退出
    For i = iStart To iEnd '开始工作表到结束工作表之间循环
        Sheets(i).Copy '复制工作表
        ActiveSheet.Cells.Copy '复制全部单元格
        With Range("A1")
            .PasteSpecial Paste:=xlPasteValues '值粘贴
            .Select '选中A1单元格
        End With
        Application.CutCopyMode = False '取消复制模式
        With ActiveWorkbook
            .SaveAs Filename:=iPath & ActiveSheet.Name & ".xlsx", FileFormat:=xlOpenXMLWorkbook '保存工作簿
            .Close '关闭工作簿
        End With
    Next
    Application.ScreenUpdating = True '恢复屏幕更新
    MsgBox "Done!" '提示完成
End Sub

示例文件如下,单击按钮后运行.

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式