Excel VBA代码用于以每天的名义打开Excel xlsx文件

我有两个文件,我想要合并到一个报告。 这两个文件都在不同的文件夹中,并且它们独立于其文件夹中。

我的问题是,当我把每个工作簿变暗为一个variables时,我需要把一个path与文件的名称。 我希望path将保持不变,每次运行macros时,都会将文件中的当前工作簿变暗为“x”

文件名称例如 – 洁净室GSS部件 – 跟踪文件17.05.2017

这是我的代码:

Set x = Workbooks.Open("C:\Users\rosipov\Desktop\eliran\MFG - GSS\GSS\Clean room GSS parts - tracking file 17.05.2017.xlsx") 

感谢您的帮助。

您可以将单元格的date,input或NOW转换为您在文件名中使用的格式的string:

 FORMAT(NOW(),"dd.mm.yyyy") 

现在你可以在打开文件时使用它:

 Set x = Workbooks.Open("C:\Users\rosipov\Desktop\eliran\MFG - GSS\GSS\Clean room GSS parts - tracking file " & FORMAT(NOW(),"dd.mm.yyyy") & ".xlsx") 

请记住,您可以使用NOW()当前date以外的其他值。

你也许可以让用户使用文件对话框来select你想要select的文件。

 Option Explicit Public Enum FileDialogType msoFileDialogOpen = 1 msoFileDialogSaveAs = 2 msoFileDialogFilePicker = 3 msoFileDialogFolderPicker = 4 End Enum Public Function OpenTargetWBExample() Dim FilePath As String: FilePath = FileDialog(msoFileDialogFilePicker, "Select workbook to open") If Len(FilePath) = 0 Then Exit Function Dim TargetWB As Workbook: Set TargetWB = Workbooks.Open(FilePath) 'Extra code goes here Set TargetWB = Nothing End Function Public Function FileDialog(ByVal DialogType As FileDialogType, Optional ByVal DialogTitle As String, _ Optional MultiSelect As Boolean, Optional ByVal FileFilter As String) As String 'If MultiSelect then outputs files in the following format: "File1;File2;File3" 'Custom File Extension Filter Format: "File Description 1~File Extension Filter 1|File Description 2~File Extension Filter 2" Dim FileDialogObject As FileDialog: Set FileDialogObject = Application.FileDialog(DialogType) Dim Index As Long, Filters() As String, Element() As String Dim SelectedFile As Variant With FileDialogObject If Len(DialogTitle) > 0 Then .Title = DialogTitle .AllowMultiSelect = MultiSelect If Len(FileFilter) > 0 Then Filters = Split(FileFilter, "|") For Index = 0 To UBound(Filters) Element = Split(Filters(Index), "~") .Filters.Add Element(0), Element(1), (.Filters.Count + 1) Next Index End If .FilterIndex = 0 .Show .Filters.Clear For Each SelectedFile In .SelectedItems FileDialog = FileDialog & CStr(SelectedFile) & ";" Next SelectedFile If Len(FileDialog) > 0 Then FileDialog = Left(FileDialog, Len(FileDialog) - 1) End With Set FileDialogObject = Nothing End Function 

因为目录中只有一个文件

 dim aaa as String aaa = ""C:\Users\rosipov\Desktop\eliran\MFG - GSS\GSS\" Set x = Workbooks.Open(aaa & Dir(aaa))