gpt4 book ai didi

vba - 如何根据单元格值删除文件?

转载 作者:行者123 更新时间:2023-12-04 20:54:20 26 4
gpt4 key购买 nike

我无法根据单元格值删除文件。
我在下面的 Kill 命令中收到一条错误消息:

Kill path & r.Offset(1, -4) & "\" & r.Offset(1, -3)

有任何想法吗?
Sub INACTIVE_files()

Const path = "C:\Users\NikolouzosD\AppData\Local\Temp\vbakillfunction\"

Dim r As Range
Dim x As Integer

Set r = Cells(1, 5)
Do Until r = ""
If UCase(r.value) = "INACTIVE" Then

Kill path & r.Offset(1, -4) & "\" & r.Offset(1, -3)
End If
Set r = r.Offset(1, 0)
Loop

End Sub

代码从单元格 E1 开始并在同一列中查找 INACTIVE 文件,直到没有更多文件可供查找。
然后,它检查文件夹名称(A 列),将其与 Cube(B 列)组合
并将它们都放在一条路径中:
path = "C:\Users\NikolouzosD\AppData\Local\Temp\vbakillfunction\"

例如:
对于不活动的单元格 E2,路径应为:
C:\Users\NikolouzosD\AppData\Local\Temp\vbakillfunction\WPO 17 02 04 3MMT All Periods\BG023104.txt

然后它会从相应的文件夹中删除 INACTIVE 文件(多维数据集)。

enter image description here

最佳答案

将路径用双引号括起来,以避免文件名和文件夹中的空格出现问题。

更好的是把路径放在一个字符串变量中,这样你就可以轻松调试它

在您的循环之外:

Dim strPath As String

在 if block 内:
   strPath = """" & path & r.Offset(1,-4) & "\" & r.Offset(1,-3) & """"
Debug.Print strPath ' Ctrl-G to view results
Kill strPath

编辑 - 在删除 之前添加文件检查

Tools | References

添加对 Windows 脚本托管的引用

然后在子代码顶部添加
Dim fso as New FileSystemObject

用检查是否存在替换您的 Kill 命令
If fso.FileExists(strPath) Then
Kill strPath
Else
Msgbox "File Doesn't Exist: " & strPath
End If

已更新以继续下一个文件

将循环更改为:
Do Until r = ""
If UCase(r.value) = "INACTIVE" AND fso.FileExists(strPath) Then
Kill strPath
End If
Set r = r.Offset(1, 0)
Loop

关于vba - 如何根据单元格值删除文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51481681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com