如何在VBA中只获取文件扩展名的文件的窗口“类型”?

时间:2015-10-05 16:55:59

标签: excel vba

我有一个excel工作表,其中包含文件的文件扩展名列表,逻辑文件大小和物理文件大小。这是我对列表中每个文件的唯一信息。基本的例子:

.txt 100 80

.txt 120 90

.mpg 2444 2000

我想要做的是使用VBA获取给定文件扩展名的Windows类型。 (即,在下图中.CAB ='安全目录',。dll ='应用程序扩展',依此类推)

(我没有足够的声誉来发布图片。链接在这里:http://i.stack.imgur.com/8Xqax.png

1 个答案:

答案 0 :(得分:0)

有大量的文件扩展名和说明,我不确定从哪里获得一个好的列表...但如果你有一对,你可以手动添加它们。

以下代码假设您的数据(即.txt 100 80)在单元格A1中开始。这将您在单元格B1中给出的描述(或单元格直接在右侧):

Sub test()
Dim i&, lastRow&
Dim fileExt$
lastRow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To lastRow
    With Cells(i, 1)
        fileExt = Trim(Left(Cells(i, 1), WorksheetFunction.Search(" ", Cells(i, 1).Value)))
        Debug.Print fileExt
        Select Case fileExt
        Case ".txt"
            Cells(i, 2).Value = "Text File"
        Case ".mp4"
            Cells(i, 2).Value = "Mpeg 4"
        Case ".mpg"
            Cells(i, 2).Value = "Mpeg"
        End Select
    End With
Next i

End Sub

如果你有一个庞大的扩展和描述列表,你可能可能会使用一个数组来执行此操作,或者创建一个表并使用Vlookup。只是取决于您想要手动输入多少。