文本框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