使用单元格引用导出 XLS 文件
Export XLS file using cell reference
我设计了以下代码来将工作表复制到新位置。
Sub XLSSave()
Sheets("Group Import").Copy
Cells.Copy
Cells.PasteSpecial xlPasteValues
ActiveWorkbook.SaveAs Filename:=Sheets("Group Import").Range("B22")
ActiveWorkbook.Close False
End Sub
单元格 K67 是文件路径
"C\Folder1\Folder2\Folder3\YYYY\MM\DD"
“C:\Folder1\Folder2\Folder3\YYYY\MM\DD”.
路径“C:”设置正确,我在问题上打错了。
我本来打算只连接单元格 B22 中的地址,因为它需要是动态的。
正在将 Excel 文件导出为乱码。
第一:C盘路径必须从“C:\”开始,你的情况是:
"C:\Folder1\Folder2\Folder3\YYYY\MM\DD"
其次:您必须将文件保存到已经存在的文件夹中,对于您的情况,您必须用“\”分割路径并检查所有子文件夹是否存在。
导出工作表
简单
Option Explicit
Sub XLSSaveEasy()
Application.ScreenUpdating = False
Dim sws As Worksheet: Set sws = ThisWorkbook.Worksheets("Group Import")
sws.Copy
Dim dws As Worksheet: Set dws = ActiveWorkbook.Worksheets(1)
dws.UsedRange.Value = dws.UsedRange.Value
Application.DisplayAlerts = False
dws.Parent.SaveAs sws.Range("B22").Value, xlOpenXMLWorkbook
Application.DisplayAlerts = True
dws.Parent.Close False
Application.ScreenUpdating = True
End Sub
没那么容易
Sub XLSSave()
Const swsName As String = "Group Import"
Const swsFilePathCell As String = "B22"
Dim sws As Worksheet: Set sws = ThisWorkbook.Worksheets(swsName)
Dim FilePath As String: FilePath = sws.Range(swsFilePathCell).Value
Dim FolderPath As String
FolderPath = Left(FilePath, InStrRev(FilePath, "\") - 1)
If Dir(FolderPath, vbDirectory) <> "" Then
Application.ScreenUpdating = False
sws.Copy
Dim dws As Worksheet: Set dws = ActiveWorkbook.Worksheets(1)
dws.UsedRange.Value = dws.UsedRange.Value
Application.DisplayAlerts = False
dws.Parent.SaveAs FilePath, xlOpenXMLWorkbook
Application.DisplayAlerts = True
dws.Parent.Close False
Application.ScreenUpdating = True
MsgBox "Backup of worksheet '" & swsName & "' created as '" _
& FilePath & "'.", vbInformation, "Success"
Else
MsgBox "The Folder '" & FolderPath & "' does not exist.", _
vbCritical, "Fail"
End If
End Sub
我设计了以下代码来将工作表复制到新位置。
Sub XLSSave()
Sheets("Group Import").Copy
Cells.Copy
Cells.PasteSpecial xlPasteValues
ActiveWorkbook.SaveAs Filename:=Sheets("Group Import").Range("B22")
ActiveWorkbook.Close False
End Sub
单元格 K67 是文件路径
"C\Folder1\Folder2\Folder3\YYYY\MM\DD"
“C:\Folder1\Folder2\Folder3\YYYY\MM\DD”.
路径“C:”设置正确,我在问题上打错了。
我本来打算只连接单元格 B22 中的地址,因为它需要是动态的。
正在将 Excel 文件导出为乱码。
第一:C盘路径必须从“C:\”开始,你的情况是:
"C:\Folder1\Folder2\Folder3\YYYY\MM\DD"
其次:您必须将文件保存到已经存在的文件夹中,对于您的情况,您必须用“\”分割路径并检查所有子文件夹是否存在。
导出工作表
简单
Option Explicit
Sub XLSSaveEasy()
Application.ScreenUpdating = False
Dim sws As Worksheet: Set sws = ThisWorkbook.Worksheets("Group Import")
sws.Copy
Dim dws As Worksheet: Set dws = ActiveWorkbook.Worksheets(1)
dws.UsedRange.Value = dws.UsedRange.Value
Application.DisplayAlerts = False
dws.Parent.SaveAs sws.Range("B22").Value, xlOpenXMLWorkbook
Application.DisplayAlerts = True
dws.Parent.Close False
Application.ScreenUpdating = True
End Sub
没那么容易
Sub XLSSave()
Const swsName As String = "Group Import"
Const swsFilePathCell As String = "B22"
Dim sws As Worksheet: Set sws = ThisWorkbook.Worksheets(swsName)
Dim FilePath As String: FilePath = sws.Range(swsFilePathCell).Value
Dim FolderPath As String
FolderPath = Left(FilePath, InStrRev(FilePath, "\") - 1)
If Dir(FolderPath, vbDirectory) <> "" Then
Application.ScreenUpdating = False
sws.Copy
Dim dws As Worksheet: Set dws = ActiveWorkbook.Worksheets(1)
dws.UsedRange.Value = dws.UsedRange.Value
Application.DisplayAlerts = False
dws.Parent.SaveAs FilePath, xlOpenXMLWorkbook
Application.DisplayAlerts = True
dws.Parent.Close False
Application.ScreenUpdating = True
MsgBox "Backup of worksheet '" & swsName & "' created as '" _
& FilePath & "'.", vbInformation, "Success"
Else
MsgBox "The Folder '" & FolderPath & "' does not exist.", _
vbCritical, "Fail"
End If
End Sub