“Excel文件”对话框多次出现
我正在使用“Excel文件”对话框多次出现,excel,vba,Excel,Vba,我正在使用Application.FileDialog(msoFileDialogOpen)允许用户选择要从中导入数据的文件。但是,在用户选择一个文件后,它会再次弹出“文件”对话框,要求用户选择一个文件。在继续之前,它将执行此操作2-3次 我是否意外地创建了一个循环 Private Sub CommandButton1_Click() Set myFile = Application.FileDialog(msoFileDialogOpen) With myFile .Title =
Application.FileDialog(msoFileDialogOpen)
允许用户选择要从中导入数据的文件。但是,在用户选择一个文件后,它会再次弹出“文件”对话框,要求用户选择一个文件。在继续之前,它将执行此操作2-3次
我是否意外地创建了一个循环
Private Sub CommandButton1_Click()
Set myFile = Application.FileDialog(msoFileDialogOpen)
With myFile
.Title = "Choose File"
.AllowMultiSelect = False
If .Show <> -1 Then
Exit Sub
ElseIf .Show <> 0 Then
FileSelected = .SelectedItems(1)
End If
End With
'data location & range to copy
mydata = "='[FileSelected]'!$C$10:$C$21" '<< change as required
'link to worksheet
With ThisWorkbook.Worksheets(1).Range("C10:C21") '<< change as required
.Formula = mydata
'convert formula to text
.Value = .Value
End With
End Sub
Private子命令按钮1\u单击()
设置myFile=Application.FileDialog(msoFileDialogOpen)
使用myFile
.Title=“选择文件”
.AllowMultiSelect=False
如果.Show-1那么
出口接头
否则,请显示0
FileSelected=.SelectedItems(1)
如果结束
以
'要复制的数据位置和范围
mydata=“=”[FileSelected]”!$C$10:$C$21“您可以将其缩短:
filepath = Application.GetOpenFilename("All files (*.*),*.*")
If filepath = False Then Exit Sub
MsgBox filepath
您可以将其缩短:
filepath = Application.GetOpenFilename("All files (*.*),*.*")
If filepath = False Then Exit Sub
MsgBox filepath
在代码中,调用Show方法两次。因此,对话框将显示两次。请尝试以下方法
Private Sub CommandButton1_Click()
Dim strPathAndFile As String
With Application.FileDialog(msoFileDialogOpen)
.Title = "Choose File"
.AllowMultiSelect = False
If .Show <> -1 Then Exit Sub
strPathAndFile = .SelectedItems(1)
End With
End Sub
Private子命令按钮1\u单击()
将strPathAndFile设置为字符串
使用Application.FileDialog(msoFileDialogOpen)
.Title=“选择文件”
.AllowMultiSelect=False
如果.Show-1,则退出Sub
strPathAndFile=.SelectedItems(1)
以
端接头
希望这有帮助 在代码中,调用Show方法两次。因此,对话框将显示两次。请尝试以下方法
Private Sub CommandButton1_Click()
Dim strPathAndFile As String
With Application.FileDialog(msoFileDialogOpen)
.Title = "Choose File"
.AllowMultiSelect = False
If .Show <> -1 Then Exit Sub
strPathAndFile = .SelectedItems(1)
End With
End Sub
Private子命令按钮1\u单击()
将strPathAndFile设置为字符串
使用Application.FileDialog(msoFileDialogOpen)
.Title=“选择文件”
.AllowMultiSelect=False
如果.Show-1,则退出Sub
strPathAndFile=.SelectedItems(1)
以
端接头
希望这有帮助 方法显示的文件对话框类似于Userform.Show
。因此,每次调用.Show
时,都会显示对话框
With Application.FileDialog(msoFileDialogOpen)
.Title = "Choose File"
.AllowMultiSelect = False
.Show
If .SelectedItems.Count = 0 Then
Exit Sub
Else
FileSelected = .SelectedItems(1)
End If
End With
.Show
方法显示的文件对话框类似于Userform.Show
。因此,每次调用.Show
时,都会显示对话框
With Application.FileDialog(msoFileDialogOpen)
.Title = "Choose File"
.AllowMultiSelect = False
.Show
If .SelectedItems.Count = 0 Then
Exit Sub
Else
FileSelected = .SelectedItems(1)
End If
End With
If.Show-1
看起来一点也不对劲。如果,则该条件将退出Sub
。Show
返回一个变量/布尔值(False
),但它也返回一个变量/字符串
实际文件名,使strPathAndFile
(wow dat name)未赋值。实际上,根据帮助文件,Show方法“显示一个文件对话框,并返回一个长字符,指示用户是按了操作按钮(-1)还是按了取消按钮(0)。”。“
。因此它似乎是合适的。而且,文件名实际上是从SelectionItems属性返回的。或者我遗漏了什么?啊,很抱歉,我对做同样事情的其他方法感到困惑。无论如何,在我看来,检查.SelectedItems.Count=0
会更容易阅读。它说什么,说什么确实如此。是的,我同意你的看法。使用.SelectedItems.Count=0
更容易阅读。如果.Show-1
看起来一点也不对劲。如果如果,则该条件将退出Sub
。Show
返回一个变量/布尔值(False
),但它也会返回一个变量/字符串
实际文件名,而将strPathAndFile
(wow dat name)保留为未分配。实际上,根据帮助文件,Show方法”会显示一个文件对话框,并返回一个长字符串,指示用户是按了操作按钮(-1)还是按了取消按钮(0)。“
。因此它似乎是合适的。而且,文件名实际上是从SelectionItems属性返回的。或者我遗漏了什么?啊,很抱歉,我对做同样事情的其他方法感到困惑。无论如何,在我看来,检查.SelectedItems.Count=0
会更容易阅读。它说什么,说什么是的,我同意你的看法。使用.SelectedItems.Count=0
更容易阅读。