Excel 文本框输入字符串并重复使用
我希望能够在一个文件夹中获取x个文件,并将它们全部放在同一工作簿的不同工作表上 我发现这个代码是有效的Excel 文本框输入字符串并重复使用,excel,vba,Excel,Vba,我希望能够在一个文件夹中获取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\
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
但是,这只起作用,因为我已经为它设置了要查看的目标文件路径
我想创建一个按钮,提示用户输入文件路径,然后使用该文件路径导入文件
我想我必须使输入成为一个字符串,然后在上面的代码中使用这个变量
这可能吗
在上面的例子中,新的工作表被称为“sheet1…”是否可以自己命名这些工作表
谢谢在按钮单击事件中包含以下内容,然后在其他代码中使用path变量
Dim path As String
path = InputBox("Enter a file path")
如果需要访问表单外部的变量,则可以将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
,但不能写入私有字段或修改属性值
考虑了<代码>输入框< /代码>,以获得更好的用户体验和更容易的输入验证。
在您的ButoNoLCKIT事件中有以下内容,然后在其他代码中使用PATH变量。
Dim path As String
path = InputBox("Enter a file path")
如果需要访问表单外部的变量,则可以将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
,但不能写入私有字段或修改属性值
考虑了<代码>输入框< /代码>,以获得更好的用户体验和更容易的输入验证。
< P>这样,用户只需单击、单击和单击即可。您不必检查输入文件夹路径是否正确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
这样,用户只需点击,点击,点击。您不必检查输入文件夹路径是否正确
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
您希望他们将所需内容输入框中,输入单元格中,还是打开一个可以浏览和选择文件夹的框?我最初想要一个下拉框,他们可以选择正确的文件。无论采用哪种方式,我都必须能够在另一个宏中使用该字符串作为查找,如果这样做有意义的话?下面是一个我刚刚尝试过的示例,它实际打开了文件。我只希望用户以字符串形式输入文件目录。然后我想在我的另一个“consolidate”宏中使用这个字符串,该宏将引入该文件夹中的3个文件。如果你停下来思考一分钟,而不是盲目地复制/粘贴来自Internet上随机陌生人的代码,你就会意识到它正在打开文件,因为有
工作簿。Open
调用。查看代码并理解它,并使其适应您的需要;不要只是拼凑粘贴你的代码与随机位和碎片收集在网上@QHarr的例子正是您所需要的。您希望他们将所需内容输入框中,输入单元格中,还是打开一个可以浏览和选择文件夹的框?我最初想要一个下拉框,他们可以选择正确的文件。无论采用哪种方式,我都必须能够在另一个宏中使用该字符串作为查找,如果这样做有意义的话?下面是一个我刚刚尝试过的示例,它实际打开了文件。我只希望用户以字符串形式输入文件目录。然后我想在我的另一个“consolidate”宏中使用这个字符串,该宏将引入该文件夹中的3个文件。如果你停下来思考一分钟,而不是盲目地复制/粘贴来自Internet上随机陌生人的代码,你就会意识到它正在打开文件,因为有工作簿。Open
调用。查看代码并理解它,并使其适应您的需要;不要只是拼凑粘贴你的代码与随机位和碎片收集在网上@QHarr的例子正是你需要的。这就是我想要的!我单击第一个按钮并进入目录,但是,当我单击第二个按钮时,我得到一条运行时错误5消息,现在是“consolidate”宏中的新行;folderPath=pathGreat。如果符合您的要求,请接受作为答案,以便关闭。我添加了如何在按钮之间传递。这就是我想要的!我单击第一个按钮并进入目录,但是,当我单击第二个按钮时,我得到一条运行时错误5消息,现在是“consolidate”宏中的新行;folderPath=pathGreat。如果符合您的要求,请接受作为答案,以便关闭。我已经添加了如何在按钮之间传递。谢谢,我刚刚尝试过,但如何将其合并到我的初始代码中?最简单的方法是用我的代码替换folderPath=“C:\Users\patrickw\Desktop\exceltest”
。向上投票,但这应该是一个返回字符串的私有函数。谢谢,我刚刚试过,但如何将其合并到我的初始代码中?最简单的方法是用我的代码替换folderPath=“C:\Users\patrickw\Desktop\exceltest”
。向上投票,但这应该是一个私有函数,返回字符串。