excel - 通过更改文件名的 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”,然后在以下句子中使用它,所以我只需在定义句子中更改名称?
解决方案
第一个问题是“你怎么知道给新文件起什么名字?” 您需要将其加载到一个变量中,并按照本 SE Q&A 中给出的说明将其用作文件名 -如何正确编写和保存新的 Excel 文件?
您可以从 MS 获取更多代码 - https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa221273(v=office.11 )?redirectedfrom=MSDN