Access VBA:如何在导入之前检查所选文件是否为excel格式

问题描述 投票:0回答:1

我使用以下代码导入csv文件。我想修改它为excel。我将.csv更改为.xlsx,但它无效。有帮助吗?

     Const msoFileDialogFilePicker As Long = 3
      Dim objDialog As Object
      Set objDialog = Application.FileDialog(msoFileDialogFilePicker)

With objDialog
    .AllowMultiSelect = False
    .SelectedItems(1) = Trim$(.SelectedItems(1))
    .Show
        If .SelectedItems.Count = 0 Then
        MsgBox "No file selected."
        Exit Sub
        ElseIf Right(.SelectedItems(1), 4) <> ".csv" Then
        MsgBox "You must select a csv (.csv) file.", vbCritical
        Exit Sub
access-vba
1个回答
1
投票

你的错误非常简单。你正在检查最后4个字符,如果它是".xlsx"。由于".xlsx"是5个字符,最后4个字符不能是".xlsx"

Right中的数字更改为5:

ElseIf Right(.SelectedItems(1), 5) <> ".xlsx" Then

或者使用文件管理器上的过滤器以正确的方式执行,因此人们只能选择xlsx:

With objDialog
    .AllowMultiSelect = False
    .Filters.Add "Excel files", "*.xlsx",1
© www.soinside.com 2019 - 2024. All rights reserved.