删除隐藏列将 excel 范围保存到 csv

remove hidden column save excel range to csv

我编写代码将 excel 范围保存到 csv
但它的隐藏列也有人可以帮助删除隐藏列吗?

'Sub to select range from excel and save it as CSV
'Added code for paste special    
Private Sub Main()
    Dim sFullFilePath As String
    Dim selectedRange As Range

    sFullFilePath = "C:\MyFileName.csv"
    Set selectedRange = Application.InputBox("Select a range", "Get Range", Type:=8)

    RangeTOCsv sFullFilePath, selectedRange
End Sub

Private Sub RangeTOCsv(sFullFilePath As String, selectedRange As Range)
    Dim workBook As workBook
    Application.DisplayAlerts = False

    selectedRange.Copy
    Set workBook = Workbooks.Add
    With workBook
        .Sheets(1).Select
        ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
        .SaveAs sFullFilePath, xlCSV
        .Close
    End With
End Sub

您需要修改 RangeToCsv 程序,如下所示:

Private Sub RangeToCsv(sFullFilePath As String, selectedRange As Range)
    Dim rng As Excel.Range
    Dim Workbook As Workbook

    Application.DisplayAlerts = False

    Set rng = selectedRange.SpecialCells(xlCellTypeVisible)
    Set Workbook = Workbooks.Add
    With Workbook
        Call rng.Copy
        .Sheets(1).Range("A1").PasteSpecial Paste:=xlPasteValues
        .SaveAs sFullFilePath, xlCSV
        .Close
    End With
End Sub

在将所选区域粘贴到新工作簿之前,它正在被函数 SpecialCells 过滤,参数 Type 设置为 xlCellTypeVisible

此操作后,变量 rng 存储原始 selectedRange 范围内的所有可见单元格。