【问题标题】:Single sheet in .xlsm file into CSV.xlsm 文件中的单个工作表转换为 CSV
【发布时间】:2021-01-16 06:04:26
【问题描述】:

我创建了一个 Excel 工作表,其中包含一个将数据从 sheet1 复制到 sheet2 的宏。

我想将 sheet2 保存为 CSV 格式。

我试过这段代码

Sub saveAsCSV()
Application.DisplayAlerts = False

ThisWorkbook.Sheets("Sheet2").SaveAs ThisWorkbook.Path & "/" & "userimport" & ".csv", FileFormat:=6

Application.DisplayAlerts = True
End Sub

此代码以 CSV 格式保存整个工作簿。我想删除 sheet1,只将 sheet2 保存为 csv。

【问题讨论】:

  • 您想删除 .xlsm 文件中的 Sheet1 并且不再需要它?然后在保存之前将其删除。如果要将其保留在 .xlsm 文件中,请将 Sheet2 复制到新工作簿并保存。
  • 参考this。这就是循环浏览所有工作表并制作每个 csv 所需的内容。但是,您也可以定位到一张工作表。
  • @Dy.Lee 谢谢你分享这个。成功了!
  • 如果您的问题解决了,请接受答案。

标签: excel vba csv


【解决方案1】:
Sub ExportSheetsToCSV()

    Dim Ws As Worksheet
    Dim xcsvFile As String
    Dim rngDB As Range
    Dim r As Long, c As Integer

    'For Each Ws In Worksheets
    Set Ws = Sheets(2)
        xcsvFile = CurDir & "\" & Ws.Name & ".csv"
        With Ws
            r = .Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
            c = .Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
            Set rngDB = .Range("a1", .Cells(r, c))
        End With
        TransToCSV xcsvFile, rngDB
    'Next
    MsgBox ("Files Saved Successfully")
End Sub


Sub TransToCSV(myfile As String, rng As Range)

    Dim vDB, vR() As String, vTxt()
    Dim i As Long, n As Long, j As Integer
    Dim objStream
    Dim strTxt As String

    Set objStream = CreateObject("ADODB.Stream")
    vDB = rng
    For i = 1 To UBound(vDB, 1)
        n = n + 1
        ReDim vR(1 To UBound(vDB, 2))
        For j = 1 To UBound(vDB, 2)
            vR(j) = vDB(i, j)
        Next j
        ReDim Preserve vTxt(1 To n)
        vTxt(n) = Join(vR, ",")
    Next i
    strTxt = Join(vTxt, vbCrLf)
    With objStream
        '.Charset = "utf-8"
        .Open
        .WriteText strTxt
        .SaveToFile myfile, 2
        .Close
    End With
    Set objStream = Nothing

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    相关资源
    最近更新 更多