नई फ़ाइलें और फ़ोल्डर्स बनाना


-2
Sub Test()
Dim myDir As String
Dim Folder1 As String

StartDate = DateValue("2-Nov-2014")
NumberOfDays = 1

For N = 0 To NumberOfDays - 1
Folder1 = UCase(Format(StartDate + N, "MMM YYYY"))
Folder2 = Format(StartDate + N, "DD MMM YYYY")
If Dir("C:\GRANDVARIATIONS\FILES\" & Folder1, vbDirectory) = "" Then
MkDir "C:\GRANDVARIATIONS\FILES\" & Folder1
End If
If Dir("C:\GRANDVARIATIONS\FILES\" & Folder1 & "\" & Folder2, vbDirectory) = "" Then
MkDir "C:\GRANDVARIATIONS\FILES\" & Folder1 & "\" & Folder2
End If




On Error Resume Next
Set oDoc = GetObject(sDocPath)
Set oWord = oDoc.Parent
If Err <> 0 Then
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents.Add
End If

oDoc.SaveAs ("C:\GRANDVARIATIONS\FILES\" & Folder1 & "\" & Folder2 & "\ANSWERS.Docx")
oDoc.Close

Next N
End Sub

"FILES" फ़ोल्डर में पहले से ही "1-Nov-2014" है और उपरोक्त कोड का उपयोग करके मैं "2-Nov-2014" नामक एक अन्य फ़ाइल बनाने में सक्षम हूं।

लेकिन, "3-Nov-2014" नाम की फ़ाइल बनाते समय, फिर से मुझे "StartDate = DateValue (" 2-Nov-2014 ")" "StartDate = DateValue (" 3-Nov-2014 ") को बदलना होगा।

क्या कोई ऐसा तरीका है जिससे मुझे हर बार नई फ़ाइल बनाने के लिए उस मूल्य को बदलना नहीं पड़ेगा?


1
यदि आप तारीख की आपूर्ति नहीं करते हैं, तो यह कैसे पता चलेगा कि आप किस तारीख का उपयोग करना चाहते हैं? क्या इसे "आज की" तारीख या कुछ माना जाना चाहिए?
14c atιᴇ007

खैर, यह तारीख के बारे में नहीं है। मैं केवल कालानुक्रमिक क्रम में अगली फ़ाइल बनाना चाहता हूं। कहते हैं कि अगर "FILES" नामक फ़ोल्डर में पहले से ही "1-nov-2014" नामक एक फ़ाइल है, तो मैं चाहता हूं कि कोड उस फ़ोल्डर को खोजे और एक शब्द दस्तावेज़ के साथ "2-nov-2014" नामक एक नई फ़ाइल बनाएं। यह।
एक्सेल प्रेमी

ठीक है, पता करने के लिए अच्छा है - आपको उस जानकारी को अपने प्रश्न में संपादित करना चाहिए। किसी भी तरह, इसलिए आपको फ़ोल्डर्स पर पुनरावृति करने की आवश्यकता है, यह निर्धारित करें कि कौन सा सबसे नया है, और फिर उस तिथि तक चर सेट करें। अब तक तुमने क्या प्रयास किये हैं? आप कहाँ फंस रहे हैं?
14c atιᴇ007

यहाँ पर अगर 3-nov-2014 नाम की फाइल की जरूरत है, तो मुझे "StartDate = DateValue (" 2-Nov-2014 "):" StartDate = DateValue ("3-Nov-2014") को संपादित करने की आवश्यकता है:।
एक्सेल प्रेमी

"फ़ोल्डर्स पर पुनरावृति, निर्धारित करें कि कौन सा सबसे नया है, और फिर उस तिथि तक चर सेट करें"। अगर यह दूसरे तरीके से किया जा सकता है, तो यह भी सबसे अधिक सराहना की जाएगी।
एक्सेल प्रेमी

जवाबों:


1
Sub Test()
Dim myDir As String
Dim Folder1 As String
Dim rRange1 As Range

Set rRange1 = Worksheets("Sheet1").Range("D3")

StartDate = Worksheets("Sheet1").Range("D3")
NumberOfDays = 1

For N = 0 To NumberOfDays - 1
    Folder1 = UCase(Format(StartDate, "MMM YYYY"))
    Folder2 = Format(StartDate + N, "DD MMM YYYY")
    If Dir("C:\GRANDVARIATIONS\FILES\" & Folder1, vbDirectory) = "" Then
        MkDir "C:\GRANDVARIATIONS\FILES\" & Folder1
    End If
    If Dir("C:\GRANDVARIATIONS\FILES\" & Folder1 & "\" & Folder2, vbDirectory) = "" Then
        MkDir "C:\GRANDVARIATIONS\FILES\" & Folder1 & "\" & Folder2
    End If




On Error Resume Next
    Set oDoc = GetObject(sDocPath)
    Set oWord = oDoc.Parent
    If Err <> 0 Then
        Set oWord = CreateObject("Word.Application")
        Set oDoc = oWord.Documents.Add
    End If

oDoc.SaveAs ("C:\GRANDVARIATIONS\FILES\" & Folder1 & "\" & Folder2 & "\ANSWERS.Docx")
oDoc.Close

Next N
End Sub

0

मान लें कि आप फ़ोल्डर्स, परिवर्तन बनाने के लिए आज की तारीख का उपयोग करना चाहते हैं

StartDate = DateValue("2-Nov-2014")

सेवा:

StartDate = DateValue(date)

यदि आप कुछ और चाहते हैं, तो मुझे डर है कि आपका प्रश्न अस्पष्ट है और अधिक स्पष्टता की आवश्यकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.