如何使用VBA中的宏将文件路径列表转换为短文件路径(DOS/8,3格式)



我在Excel的单元格中有一个文件路径列表,这些路径位于文件夹集,例如:

**Start:** G:TSBBridge SharedBridge PlansBridge Plans-SCANNED2574 35_Long Creek

想要这个:G:\TSB\Bridge~1\Pridge~1\Bridge-1\257435~1(我手写的,所以它可能不完美,但希望你明白我的意思(

我在Excel中列出了近3000个文件路径,但我希望它们以短文件路径格式显示,DOS或8.3格式就是我所说的格式。

基本上,我在Excel的A列中列出了文件夹的位置,我希望运行一个宏,查看每个单独的路径,并将其转换为B列中的短路径版本。必须有一些方法可以自动完成,而不是一个接一个?

任何帮助都将不胜感激,只是似乎找不到任何在线帮助来帮助我开始,因为我是VBA的初学者。

FileSystemObject可以在这里为您提供帮助。目前尚不清楚您的路径是文件还是文件夹,以及您想要的是文件夹/文件的短名称,还是短名称格式的整个路径。我允许使用文件夹或文件(在尝试获取它们的路径之前,我会检查它们是否存在(,并以短名称格式返回完整路径。

EDIT-适于用作工作表函数

现在,您可以在类似B1的单元格中使用此函数,公式如下:=GetShortPath(A1)

Option Explicit
Public Function GetShortPath(path As String) As String
'Add a reference to Microsoft Scripting Runtime
Static fso As FileSystemObject
If fso Is Nothing Then
Set fso = New FileSystemObject
End If
'If the path is a file - Output the full path in 8.3 format
If fso.FileExists(path) Then
GetShortPath =  fso.GetFile(path).ShortPath
Exit Function
End If
'If the path is a folder - Output the full path in 8.3 format
If fso.FolderExists(path) Then
GetShortPath = fso.GetFolder(path).ShortPath
Exit Function
End If
End Function

相关内容

  • 没有找到相关文章

最新更新