文本框inputstring并重新使用

我希望能够在一个文件夹中获取x个文件,并将它们放在同一个工作簿的单独表单上。

我发现这个代码有效。

Public Sub consolWB() Dim FSO As Object Dim folder As Object, subfolder As Object Dim wb As Object Set FSO = CreateObject("Scripting.FileSystemObject") folderPath = "C:\Users\patrickw\Desktop\exceltest" Set folder = FSO.GetFolder(folderPath) With Application .DisplayAlerts = False .ScreenUpdating = False .EnableEvents = False .AskToUpdateLinks = False End With For Each wb In folder.Files If Right(wb.Name, 3) = "xls" Or Right(wb.Name, 4) = "xlsx" Or Right(wb.Name, 4) = "xlsm" Then Set openWB = Workbooks.Open(wb) For Each ws In openWB.Worksheets ws.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) Next ws openWB.Close End If Next wb With Application .DisplayAlerts = True .ScreenUpdating = True .EnableEvents = True .AskToUpdateLinks = True End With End Sub 

但是,这只是因为我已经设置了目标文件path才能正常工作。

我想创build一个button,提示用户input文件path,然后使用该文件pathinput文件。

我想我必须使input一个string,然后在上面的代码中使用此variables。

这可能吗?

在上面的例子中,新工作表被称为“工作表1 …”是否可以自己命名这些?

谢谢

在button_click事件中有以下内容,然后在其他代码中使用pathvariables。

 Dim path As String path = InputBox("Enter a file path") 

如果您需要访问表单外的variables,则可以将path声明为模块级Public字段:

 Public path As String Private Sub CommandButton1_Click() path = InputBox("Enter a file path") End Sub Private Sub CommandButton2_Click() Debug.Print path End Sub 

或者更好的是,如果path不应该从表单外部分配,则使用属性封装它:

 Private path As String Public Property Get SelectedPath() As String SelectedPath = path End Property Private Sub CommandButton1_Click() path = InputBox("Enter a file path") End Sub 

这样,表单之外的代码可以读取 SelectedPath ,但不能写入专用字段或修改该属性的值。

这就是说考虑使用FileDialog而不是 InputBox ,以获得更好的用户体验和更简单的inputvalidation。

这样,用户只需要点击,点击并点击即可。 您不必检查input文件夹path是否正确。

 Sub GetFolder() Dim FD As Office.FileDialog Dim FolderPath as string Set FD = Application.FileDialog(msoFileDialogFolderPicker) FD.Show FolderPath = FD.SelectedItems(1) Msgbox FolderPath End Sub