2015-08-14 3 views
0

Я сделал код для сохранения диапазона excel до csv
, но его получение скрытых столбцов также может помочь удалить скрытый столбец?удалить скрытую рубрику save excel range to 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 

ответ

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.

+0

Спасибо mielk :) Я немного изменил его. Я изменил его перед отправкой на функцию RangeTOCsv sFullFilePath, selectedRange.SpecialCells (xlCellTypeVisible) – Icarus