VBA,群里的问题,如何单独只保存1个sheet,而不是保证整个工作簿workbook?

1 群里有人求助的问题1 

  • 有大神回答了,代码很简洁
  • 但是可能没注意到,这个求助的是需求把一个sheet单独导出为csv

 

2 方法1:单独把一个sheet另存为csv

  • 方法1的思路:
  • 先copy一个sheet,EXCEL会自动生成一个新的activeworkbook
  • 保存这个新的wb就行了
Sub 导出csv()

Dim str1 As String
Dim sh1, sh2 As Worksheet
Dim path1

path1 = "C:\Users\Administrator\Desktop"
str1 = InputBox("请输入您要导出的sheet名")

For Each sh1 In ThisWorkbook.Worksheets
    If sh1.Name = str1 Then
         sh1.Copy
         ActiveWorkbook.SaveAs path1 & "\" & sh1.Name & ".csv"
         ActiveWorkbook.Close
       Exit Sub
    Else
       MsgBox ("没有这个sheet或您输入的sheet名不对,请您修改后重试")
    End If
Next

End Sub

 

3  直接保存工作簿的语法(EXCEL正常只能整体保存workbook,不能单独保存worksheet)

3.1 workbooks().saveas

  • 简洁的代码如这个:
  • ActiveWorkbook.SaveAs Filename:="C:\A\" & 文件名 ".csv", FileFormat:=xlCSV

 

3.2 worksheets().saveas   和wb.saveas没区别

  • 除了使用workbooks().saveas
  • 居然也可以使用 worksheets().saveas,并且功能和wb.saveas一致,每个工作表和其改动都会保存。
  • thisworkbook.SaveAs path1 & "\" & sh1.Name & ".csv"
  • sh1.SaveAs path1 & "\" & sh1.Name & ".csv"

 

Sub 导出csv2()

Dim str1 As String
Dim sh1, sh2 As Worksheet
Dim path1

path1 = "C:\Users\Administrator\Desktop"

str1 = InputBox("请输入您要导出的sheet名")

For Each sh1 In ThisWorkbook.Worksheets
    If sh1.Name = str1 Then
       sh1.SaveAs path1 & "\" & sh1.Name & ".csv"
'       thisworkbook.SaveAs path1 & "\" & sh1.Name & ".csv"  '实测这2种写法都会全部保存wb
       Exit Sub
    Else
       MsgBox ("没有这个sheet或您输入的sheet名不对,请您修改后重试")
    End If
Next

 

 

4 扩展问题:有时候试试,多个sheet 这样是否OK

  • 反而更简洁
Sub 导出csv1()
Dim sh1 As Worksheet
Dim path1
path1 = "C:\Users\Administrator\Desktop"
    For Each sh1 In ThisWorkbook.Worksheets
        sh1.Copy
        ActiveWorkbook.SaveAs path1 & "\" & sh1.Name & ".xlsx"
        'ActiveWorkbook.SaveAs path1 & "\" & ThisWorkbook.Name & "-" & sh1.Name & ".xlsx"
        ActiveWorkbook.Close
    Next
End Sub

 

5  有其他方法单独保存一个worksheet吗?

 

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:精致技术 设计师:CSDN官方博客 返回首页

打赏作者

奔跑的犀牛先生

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值