首页 > 解决方案 > 通过更改文件名的 VBA 复制粘贴

问题描述

在我的工作中,我手动将销售预测复制到另一个文件中,然后上传到我们的网站。我手动复制的两个文件每次都具有完全相同的布局(没有单元格在改变位置),但是由于每天都有不同的产品,文件的名称会发生​​变化。

我尝试了 VBA 记录按钮,但由于文件每天都更改其名称,因此它变得无用,因为它需要我在每个句子中更改文件的名称。我可以在开头以某种方式定义文件的名称,这样我只需要在运行宏时更改它吗?

    Sub Test2()
' Test2 Macro

Dim FileName As String
FileName = ""

With Application.FileDialog(msoFileDialogFilePicker)
    .Title = "Select File"
    .Filters.Add "Excel File", "*.xls?"
    .AllowMultiSelect = False

    If .Show Then
        FileName = .SelectedItems(1)
    End If
End With
If Len(FileName) < 4 Then Exit Sub 'No file selected

Dim TempWorkbook As Workbook
Set TempWorkbook = Workbooks.Open(FileName, ReadOnly:=True)

ActiveSheet.Range("U8").FormulaR1C1 = "=" & TempWorkbook.Worksheets("FINAL FORM").Cells(18, 2).Address(True, True, xlR1C1, True)

TempWorkbook.Close SaveChanges:=False
Set TempWorkbook = Nothing

End Sub

例如,以某种方式将 [MNY FDL CS Lifter Lip.xlsx] 定义为“wb1”,然后在以下句子中使用它,所以我只需在定义句子中更改名称?

标签: excelvba

解决方案


第一个问题是“你怎么知道给新文件起什么名字?” 您需要将其加载到一个变量中,并按照本 SE Q&A 中给出的说明将其用作文件名 -如何正确编写和保存新的 Excel 文件?

您可以从 MS 获取更多代码 - https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa221273(v=office.11 ​​)?redirectedfrom=MSDN


推荐阅读