我熟悉excel,但对VBAs还很陌生。我有一个有多个工作表的报表,我想导出一个特定的范围,并将文件保存到单独的CSV文件中。
我已经能够用下面的代码导出并保存文件。现在我想添加代码来导出范围为(“E6:V100”)的工作表。
我怎么能添加这个与我下面的代码。
任何帮助都是感激不尽的。
Option Explicit
Sub WriteCSVs()
Dim mySheet As Worksheet
Dim myPath As String
myPath = SelectFolder
Application.DisplayAlerts = False
For Each mySheet In ActiveWorkbook.Worksheets
If mySheet.Visible = xlSheetVisible Then
'MsgBox CStr(mySheet.Visible)
ActiveWorkbook.Sheets(mySheet.Index).Copy
'ActiveWorkbook.SaveAs Filename:=myPath & mySheet.Name, FileFormat:=xlCSV, CreateBackup:=True
ActiveWorkbook.SaveAs Filename:=myPath & mySheet.Range("B2"), FileFormat:=xlCSV
ActiveWorkbook.Close
End If
Next mySheet
Application.DisplayAlerts = True
End Sub
Function SelectFolder() As String
Dim FldrPicker As FileDialog
Dim myFolder As String
'Have User Select Folder to Save to with Dialog Box
Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
With FldrPicker
.Title = "Select A Target Folder"
.AllowMultiSelect = False
If .Show <> -1 Then Exit Function
SelectFolder = .SelectedItems(1) & "\"
End With
End Function
2条答案
按热度按时间dzhpxtsq1#
将此代码放在
Application.DisplayAlerts
行中,替换现有代码(如果您只想保存特定的Range),或者在现有代码之后/之前(如果您想保存特定的Range和整个工作表,就像现在一样):此代码:
myPath
是有效的文件夹myPath
文件夹中已存在同名文件,则该文件将被覆盖laximzn52#
将范围导出到CSV