excel表中有員工資訊,我需要將C列的第10884行到最后一行的資料與D盤目錄下常用檔案檔案夾下很多的照片資訊進行比對,如果一樣,則洗掉掉D盤常用檔案夾下的檔案,下面闡述我的思路,首先遍歷遍歷D盤目錄下常用檔案夾下所有照片的檔案名資訊到ar陣列里面,然后遍歷excel的C列10884行到最后一行的所有資料到xls_ar陣列里面,然后利用字典,將xls_ar陣列里面的資料添加進去,通過exists方法和ar里面的進行比對,如果一樣,則進行洗掉操作,代碼如下:
Sub delete()
Dim xlsfile, ar(), n%
Dim xls_ar()
xlsfile = Dir("D:\常用檔案\" & "*.jpg")
Do Until Len(xlsfile) = 0
n = n + 1
ReDim Preserve ar(1 To n)
ar(n) = xlsfile
xlsfile = Dir
Loop
xls_ar = Range("C10884:C" & [C65535].End(3).Row)
Dim c
Set dic = CreateObject("scripting.dictionary")
For Each c In xls_ar
dic(c) = ""
Next
For i = 1 To UBound(ar) - LBound(ar) + 1
If dic.exists(ar(i)) Then
Dim filename As String
filename = Dir("D:\常用檔案\" & ar(i) & ".jpg")
Kill "D:\常用檔案\" & filename
filename = Dir
End If
Next
End Sub
我的困惑在于filename = Dir("D:\常用檔案\" & ar(i) & ".jpg")
因為程式會無法識別ar(i)他只會去查找變數名ar(i),而不是里面的值,很奇怪
我也不知道是不是這種需要參考還是怎么的?還請各位大神給我一些指點與幫助,我今天才開始學的VBA
uj5u.com熱心網友回復:
ar(i)是不是已經帶后綴.jpg了,在你filename = Dir("D:\常用檔案\" & ar(i) & ".jpg")時候多了一個.jpg呢轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/91015.html
標籤:VBA
