![VBA 根据文件名重命名工作表](https://linux22.com/image/1586397/VBA%20%E6%A0%B9%E6%8D%AE%E6%96%87%E4%BB%B6%E5%90%8D%E9%87%8D%E5%91%BD%E5%90%8D%E5%B7%A5%E4%BD%9C%E8%A1%A8.png)
我得到了一堆“.Zip”格式的录制文件。我的 VBA 打开了所有这些文件,并将详细信息减去为文本。由于文件数量很多,工作簿会创建工作表并保持计数,如下所示:
ActiveSheet.Paste
Dim sheetsQuantity As Integer
sheetsQuantity = ThisWorkbook.Worksheets.Count
ActiveSheet.Name = "Sheet" & sheetsQuantity - 3
我需要将 (“Sheet” & 数量) 更新为打开以获取信息的文件名,并且由于文件很多,因此每个 Sheet 必须与文件匹配。因此,如果文件 #1 名为“MatchCase.zip”,则我需要 Sheet#1 为“MatchCase.zip”,依此类推。
请问有什么建议吗?
答案1
这可能取决于你的 Windows 版本和文件结构。我ZIP
在桌面上创建了一个名为持有人.Zip文件夹中有一个名为的文件格式.xlsm
我打开文件并选择工作簿中的某些工作表并Path
使用以下命令检查工作簿:
Sub WhoHoldsMe()
Dim sPath As String
sPath = ActiveSheet.Parent.Path
arr1 = Split(sPath, "\")
arr2 = Split(arr1(UBound(arr1)), "_")
MsgBox sPath & vbCrLf & arr2(1)
End Sub
我得到:
显然 ActiveSheet 有一个父级(包含该工作表的工作簿)。该工作簿的路径包含ZIP
文件的名称。
遗憾的是,Path
不包含持有人.zip驻留在我的桌面上。