Vba 在MS Excel 2013 32位中连续调用2次时,Application.FileDialog.Show不起作用

Vba 在MS Excel 2013 32位中连续调用2次时,Application.FileDialog.Show不起作用,vba,show,filedialog,Vba,Show,Filedialog,2013年(32位) 调用了两个FD.Show,但其中一个不起作用。 文件选择窗口不显示并直接执行下一条语句。 如何解决这个问题 我的示例代码) 非常直截了当的回答,您无法执行第二次FD调用,因为您在第一次FD调用中没有设置end,这可能会在我的情况下引发错误,下面是我为您提供的解决方案,并且工作正常: Set FD = Application.FileDialog(msoFileDialogFilePicker) With FD .Show If .Sele

2013年(32位) 调用了两个FD.Show,但其中一个不起作用。 文件选择窗口不显示并直接执行下一条语句。 如何解决这个问题

我的示例代码)


非常直截了当的回答,您无法执行第二次FD调用,因为您在第一次FD调用中没有设置end,这可能会在我的情况下引发错误,下面是我为您提供的解决方案,并且工作正常:

Set FD = Application.FileDialog(msoFileDialogFilePicker)

With FD
    .Show
        
    If .SelectedItems.Count > 0 Then
        workbook1 = .SelectedItems(1)
    End If
    
End With
    
With FD
    .Show
    
    If .SelectedItems.Count > 0 Then
        workbook2 = .SelectedItems(1)
    End If
    
End With

对我来说很好。谢谢你的测试和回答。在64位excel 2016中,该功能运行良好,但在32位excel 2013中不起作用。太糟糕了,我没有为您提供较旧的版本测试,可能您可以将FD拆分为2个子项,以使其成功。
Set FD = Application.FileDialog(msoFileDialogFilePicker)

With FD
    .Show
        
    If .SelectedItems.Count > 0 Then
        workbook1 = .SelectedItems(1)
    End If
    
End With
    
With FD
    .Show
    
    If .SelectedItems.Count > 0 Then
        workbook2 = .SelectedItems(1)
    End If
    
End With