मैं नवीनतम डाउनलोड सीएसवी फ़ाइल खोजने के लिए किसी दिए गए निर्देशिका के माध्यम से लूप करने की कोशिश कर रहा हूं। कुछ कारणों से मेरा डिर फ़ंक्शन कोई फ़ाइल नहीं मिलेगा भले ही फ़ाइल मौजूद है। मैं वीबीए से पूरी तरह से परिचित नहीं हूं इसलिए शायद मुझे डिर फ़ंक्शन करने के लिए कुछ प्रकार का संदर्भ याद आ रहा है, लेकिन मुझे कुछ भी ऑनलाइन नहीं मिल रहा है जो मुझे बताता है कि मुझे इसकी आवश्यकता है। सभी उदाहरण और मंच डिर का उपयोग करते हैं जैसे मैं करता हूं, लेकिन मैं काम पर नहीं आ सकता। यहाँ कोड, कृपया मुझे बताओ कि आप देख सकते है कि अगर मैं गलत क्या कर रहा हूँ है:एक्सेल 2010 वीबीए में काम नहीं कर रहा
Public Function Get_File() as string
Dim filePath As String
ChDir ("..")
filePath = CurDir
'Goes back to Documents directory to be in same directory as macro
ChDir (filePath & "\Documents")
filePath = filePath & "\Downloads\test.txt"
filePath = getLatestFile(filePath)
Get_File = filePath
End Function
Public Function getLatestFile(pathToFile As String) As String
Dim StrFile As String
Dim lastMod As Variant
Dim nextMod As Variant
Dim lastFileName As String
StrFile = Dir(pathToFile)
lastFileName = StrFile
lastMod = FileDateTime(StrFile)
While Len(StrFile) > 0
Debug.Print StrFile
StrFile = Dir
nextMod = FileDateTime(StrFile)
If nextMod > lastMod Then
lastFileName = StrFile
lastMod = nextMod
End If
Wend
getLatestFile = lastFileName
End Function
test.txt फ़ाइल मेरी डाउनलोड फ़ाइल में है और FilePath स्ट्रिंग प्रिंट बाहर सही रास्ता हो सकता है, लेकिन मैं रखना एक त्रुटि हो रही है जिसमें यह फ़ाइल नहीं मिल रही है। यह Dir (pathToFile) के पहले उपयोग में विफल रहता है। किसी भी तरह की सहायता का स्वागत किया जाएगा।
त्रुटि नहीं DIR के साथ है। त्रुटि इस पंक्ति के साथ है 'lastMod = FileDateTime (StrFile)' आपको पूरा पथ प्रदान करना होगा। इसी प्रकार दूसरों के लिए। –