EXCEL VBA 点击按钮 自动复制当前表到一个新的工作簿到指定位置 ,而且只复制它的格式和数值 ,不要复制公
EXCELVBA点击按钮自动复制当前表到一个新的工作簿到指定位置,而且只复制它的格式和数值,不要复制公式和模块。最好每一句都有注释谢谢...
EXCEL VBA 点击按钮 自动复制当前表到一个新的工作簿到指定位置 ,而且只复制它的格式和数值 ,不要复制公式和模块。 最好每一句都有注释 谢谢
展开
2个回答
展开全部
按钮请自行添加。
Sub 另存无VBA工作薄()
Application.DisplayAlerts = False '不显示警告信息
Workbooks.Add '新建工作薄。
With ActiveWorkbook '面向活动工作薄(新工作薄)
ThisWorkbook.ActiveSheet.Copy Before:=.Sheets(1)
'复制工作表到新工作薄的第1个工作表之前
For i = .Sheets.Count To 2 Step -1
.Sheets(i).Delete '逆序逐个删除所面向对象的其余工作表
Next
With .Sheets(1) '面向其第1个工作表
If .Shapes.Count > 0 Then .Shapes.Delete
'如果“它”含有任何对象(指图片、按钮等),都予以删除
.UsedRange.Value = .UsedRange.Value '把“它”已使用的单元格区域内的公式转成值
End With '返回。即重新面向上一个对象。
For Each vbc In .VBProject.VBComponents '用变量vbc逐次代表所面向对象的每个VB工程元素
Select Case vbc.Type '按元素的类型值选择执行命令
Case 1, 2, 3 '如果类型值为1,2或3(对应为模块、类模块、窗体)
vbc.Remove '移除VB工程元素vbc
Case Else
vbc.CodeModule.DeleteLines 1, vbc.CodeModule.CountOfLines
'删除vbc(工作表或Thisworkbook)的代码区代码
End Select
Next
End With '返回。即重新面向上一个对象。
End Sub
Sub 另存无VBA工作薄()
Application.DisplayAlerts = False '不显示警告信息
Workbooks.Add '新建工作薄。
With ActiveWorkbook '面向活动工作薄(新工作薄)
ThisWorkbook.ActiveSheet.Copy Before:=.Sheets(1)
'复制工作表到新工作薄的第1个工作表之前
For i = .Sheets.Count To 2 Step -1
.Sheets(i).Delete '逆序逐个删除所面向对象的其余工作表
Next
With .Sheets(1) '面向其第1个工作表
If .Shapes.Count > 0 Then .Shapes.Delete
'如果“它”含有任何对象(指图片、按钮等),都予以删除
.UsedRange.Value = .UsedRange.Value '把“它”已使用的单元格区域内的公式转成值
End With '返回。即重新面向上一个对象。
For Each vbc In .VBProject.VBComponents '用变量vbc逐次代表所面向对象的每个VB工程元素
Select Case vbc.Type '按元素的类型值选择执行命令
Case 1, 2, 3 '如果类型值为1,2或3(对应为模块、类模块、窗体)
vbc.Remove '移除VB工程元素vbc
Case Else
vbc.CodeModule.DeleteLines 1, vbc.CodeModule.CountOfLines
'删除vbc(工作表或Thisworkbook)的代码区代码
End Select
Next
End With '返回。即重新面向上一个对象。
End Sub
2011-12-04
展开全部
如果你仅仅是这样一个动作,可否考虑直接使用 录制 宏 哪?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询