Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 我怎样才能拿到窗户;“类型”;在VBA中仅具有文件扩展名的文件的?_Excel_Vba - Fatal编程技术网

Excel 我怎样才能拿到窗户;“类型”;在VBA中仅具有文件扩展名的文件的?

Excel 我怎样才能拿到窗户;“类型”;在VBA中仅具有文件扩展名的文件的?,excel,vba,Excel,Vba,我有一个excel工作表,其中有文件扩展名列表、逻辑文件大小和物理文件大小。这是列表中每个文件的唯一信息。基本示例: .txt 100 80 .txt 120 90 .mpg 2444 2000 我想做的是使用VBA获取给定文件扩展名的windows类型。(即,在下图中.CAB='Security Catalog',.dll='Application extension',等等) (我没有足够的声誉来发布图片。这里的链接:)有大量的文件扩展名和描述,我不知道从哪里可以得到一个好的列表……但是如果

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

.txt 100 80

.txt 120 90

.mpg 2444 2000

我想做的是使用VBA获取给定文件扩展名的windows类型。(即,在下图中.CAB='Security Catalog',.dll='Application extension',等等)


(我没有足够的声誉来发布图片。这里的链接:)

有大量的文件扩展名和描述,我不知道从哪里可以得到一个好的列表……但是如果你有一些,你可以手动添加它们

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


如果您有一个庞大的扩展和描述列表,那么您可以改为使用数组,或者创建一个表并使用Vlookup。这在某种程度上取决于您想要手动键入的文件大小。

文件扩展名或多或少是一件方便的事情,并不总是反映特定的文件类型,尤其是在*nix上。例如,我可以将文本文件命名为text.jpg。应该存储在注册表中。我想你是
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