活动工作表复制范围

今天,我需要复制范围,而不是所有的页面我的activesheet。

我现在有这个代码:

Sub Save1() Dim NomFichier, Nom Nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & Hour(Time) & "-" & Minute(Time) & "-" & Second(Time) ActiveSheet.Copy ActiveWorkbook.SaveAs Filename:="C:\Users\Illyana\Documents\Dropbox\Personnel\Freddy\Audit réalisé\Chambre 100\" & "Chambre_" & ActiveSheet.Name & "_" & Nom ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\Illyana\Documents\Dropbox\Personnel\Freddy\Audit réalisé\Chambre 100\PDF\" & "Chambre_" & ActiveSheet.Name & "_" & Nom, Quality:= _ xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ From:=1, To:=1, OpenAfterPublish:=False End Sub Sub Reinitialiser() [D4:J53].ClearContents End Sub 

但是,当我改变这一行: ActiveSheet.Copy通过: ActiveSheet.Range("A1:J72").Copy副本作品,但工作簿与所有工作表创build。

我能做些什么来保存好范围的activesheet?

要使用Range.Copy方法,您需要指定将数据复制到的目标范围。 我已经使用注释更新了以下代码,以显示如何将范围复制到新工作簿中的新工作表。 您需要将“WorksheetName”更改为包含数据的工作表的名称:

 Sub Save1() Dim wb As Excel.Workbook, wsSource As Excel.Worksheet, wsDest As Excel.Worksheet Dim NomFichier, Nom Nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & Hour(Time) & "-" & Minute(Time) & "-" & Second(Time) ' Reference the Worksheet containing the data to be copied ' Change "WorksheetName" to the name of the Worksheet to copy from Set wsSource = ActiveWorkbook.Worksheets("WorksheetName") ' Create a new Workbook with one Worksheet Set wb = Workbooks.Add(xlWBATWorksheet) ' Set a reference to the Worksheet in the new Workbook Set wsDest = wb.Worksheets(1) ' Copy the data to the new Worksheet, paste at Cell "A1" wsSource.Range("A1:J72").Copy wsDest.Range("A1") wb.SaveAs Filename:="C:\Users\Illyana\Documents\Dropbox\Personnel\Freddy\Audit réalisé\Chambre 100\" & "Chambre_" & wsSource.Name & "_" & Nom wsDest.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:="C:\Users\Illyana\Documents\Dropbox\Personnel\Freddy\Audit réalisé\Chambre 100\PDF\" & "Chambre_" & wsSource.Name & "_" & Nom, Quality:= _ xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ From:=1, To:=1, OpenAfterPublish:=False End Sub 

以下代码行:

 ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:="C:\Users\Illyana\Documents\Dropbox\Personnel\Freddy\Audit réalisé\Chambre 100\PDF\" & "Chambre_" & ActiveSheet.Name & "_" & Nom, _ Quality:= xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ From:=1, To:=1, _ OpenAfterPublish:=False 

将导出ActiveSheet作为PDF文件。

要导出只是 ActiveSheet.Range("A1:J72")你应该说:

 ActiveSheet.Range("A1:J72").ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:="C:\Users\Illyana\Documents\Dropbox\Personnel\Freddy\Audit réalisé\Chambre 100\PDF\" & "Chambre_" & ActiveSheet.Name & "_" & Nom, _ Quality:= xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ From:=1, To:=1, _ OpenAfterPublish:=False 

你的代码行说

 ActiveSheet.Copy ActiveWorkbook.SaveAs Filename:="C:\Users\Illyana\Documents\Dropbox\Personnel\Freddy\Audit réalisé\Chambre 100\" & "Chambre_" & ActiveSheet.Name & "_" & Nom 

不需要执行导出。 (由于其他原因可能需要SaveAs,例如,因为您想将整个工作簿的副本保存在一个目录中,PDF版本保存在子目录中,所以不需要拷贝)。