【问题标题】:remove hidden column save excel range to csv删除隐藏列将excel范围保存到csv
【发布时间】:2015-11-07 11:08:33
【问题描述】:

我编写了将 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

【问题讨论】:

    标签: excel vba export-to-csv


    【解决方案1】:

    您需要修改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 范围内的所有可见单元格。

    【讨论】:

    • 谢谢 mielk :) 我稍微改变了它。我在发送到函数 RangeTOCsv sFullFilePath, selectedRange.SpecialCells(xlCellTypeVisible) 之前对其进行了更改
    猜你喜欢
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 2014-11-26
    相关资源
    最近更新 更多