在Excel中,可以使用VBA宏来获取打开的Excel文件名。以下是几种方法:
方法一:使用`Dir`函数
1. 在Excel中,打开一个工作簿,然后按下`Alt + F11`键打开VBA编辑器。
2. 在VBA编辑器中,插入一个新的模块(在菜单栏选择“插入” -> “模块”)。
3. 在模块中输入以下代码:
```vba
Sub GetOpenFileName()
Dim f As String
f = Dir
While f <> ""
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = f
f = Dir
Wend
End Sub
```
4. 运行宏,它将在Excel的第一列中显示所有打开的文件名。
方法二:使用`INDEX`和`MATCH`函数
1. 在Excel中,打开一个工作簿,然后按下`Alt + F11`键打开VBA编辑器。
2. 在VBA编辑器中,插入一个新的模块(在菜单栏选择“插入” -> “模块”)。
3. 在模块中输入以下代码:
```vba
Sub GetOpenFileName()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(1)
Dim i As Long
i = 1
Do While True
Dim fileName As String
fileName = Dir
If fileName = "" Then Exit Do
ws.Cells(i, 1).Value = fileName
i = i + 1
Loop
End Sub
```
4. 运行宏,它将在Excel的第一列中显示所有打开的文件名。
方法三:使用`Files`函数
1. 在Excel中,打开一个工作簿,然后按下`Alt + F11`键打开VBA编辑器。
2. 在VBA编辑器中,插入一个新的模块(在菜单栏选择“插入” -> “模块”)。
3. 在模块中输入以下代码:
```vba
Sub GetOpenFileName()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(1)
Dim i As Long
i = 1
Dim fileList As Variant
fileList = Files("C:\path\to\folder\*.*")
For Each file In fileList
ws.Cells(i, 1).Value = file
i = i + 1
Next file
End Sub
```
4. 修改`Files`函数中的路径为你要获取文件名的文件夹路径。
5. 运行宏,它将在Excel的第一列中显示所有打开的文件名。
方法四:使用PowerShell脚本
1. 打开PowerShell,导航到包含你想要提取文件名的文件夹。
2. 输入以下命令并按回车:
```powershell
Get-ChildItem -Path "C:\path\to\folder" -File | Select-Object -Property Name | Export-Csv -Path "C:\path\to\output.csv" -NoTypeInformation
```
3. 将输出的CSV文件导入Excel,然后使用“数据” -> “分列”功能将文件名分列到Excel中。
这些方法可以帮助你获取Excel中打开的文件名。选择适合你的方法进行操作即可。