使用单元格引用导出 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