我是VBA编程的新手,但仍然设法编写了一个小代码,将Excel工作表导出到CSV文件。这必须尽可能对用户友好,因此我想到了这一点:
Sub export_first()
Application.DisplayAlerts = False
Dim wb As Workbook, InitFileName As String, fileSaveName As String
InitFileName = ThisWorkbook.Path & "\Export nr1_" & Format(Date, "yyyymmdd")
Sheets("MySheetNameToExport").Copy
Set wb = ActiveWorkbook
fileSaveName = Application.GetSaveAsFilename(InitialFileName:=InitFileName, _
fileFilter:="Semicolon separated CSV (*.csv), *.csv")
With wb
If fileSaveName <> "False" Then
.SaveAs fileSaveName, FileFormat:=xlCSV, Local:=True
.Close
Else
.Close False
Exit Sub
End If
End With
End Sub
这样很好。它被添加到按钮上,并且当按下按钮时,代码完成所有工作。现在的事情是,我的同事提出一个想法,我们应该使用检查用户某些值的列(让他们称为C,D),但是当他们导出工作表时,这些列必须被忽略而不是导出。我试图做的是扩展表格行,如:
Sheets("MySheetNameToExport").Range("A:B, E:G").Copy
但是,当我将此修改的行添加到宏中并运行代码时,Excel崩溃并导出了第一张工作表,这只是一些欢迎文本,完全没有必要。
我建议先隐藏C和D列,然后仅复制您范围内的可见单元格。
Columns("C:D").EntireColumn.Hidden = True
Sheets("MySheetNameToExport").Range("A:G").SpecialCells(xlCellTypeVisible).Copy
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句