删除隐藏列将 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
范围内的所有可见单元格。
我编写代码将 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
范围内的所有可见单元格。