YENİ dosya ve klasörler oluşturma


-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

Bir "FILES" klasöründe zaten "1-Nov-2014" var ve yukarıdaki kodu kullanarak "2-Nov-2014" isimli başka bir dosya oluşturabiliyorum.

Ancak, "3-Kasım-2014" isimli bir dosya oluştururken, yine "StartDate = DateValue (" 2-Nov-2014 ")" yerine "StartDate = DateValue (" 3-Nov-2014 ")" değiştirmem gerekiyor.

Her yeni bir dosya oluşturmak istediğimde bu değeri değiştirmek zorunda kalmamamın bir yolu var mı?


1
Tarihi belirtmezseniz, hangi tarihi kullanmak istediğinizi nasıl bilebilir? Bugünün tarihi olan bir şey mi olmalı?
— Ƭᴇcʜιᴇ007

Şey, randevuyla alakalı değil. Sadece bir sonraki dosyayı kronolojik sırada oluşturmak istiyorum. Diyelim ki "FILES" adındaki bir klasörde "1-nov-2014" adında bir dosya zaten varsa, kodun bu klasörü aramasını ve içinde "2-nov-2014" adında yeni bir dosya oluşturmasını istiyorum. o.
— EXCEL LOVER 19:

Tamam, bilmek güzel - bu bilgiyi sorunuza göre düzenlemelisiniz. Her neyse, klasörler üzerinde yineleme yapmanız, hangisinin en yenisi olduğunu belirlemeniz ve ardından değişkeni o tarihe ayarlamanız gerekir. Şimdiye kadar ne denedin? Tam olarak nerede sıkışıp kalıyorsun?
— ᴇcʜιᴇ007

Eğer burada 3-nov-2014 isimli bir dosya gerekliyse "StartDate = DateValue (" 2-Nov-2014 "):" StartDate = DateValue ("3-Nov-2014"): 'i düzenlemeliyim.
— EXCEL LOVER

msgstr "Klasörler üzerinde yinele, hangisinin en yenisi olduğunu belirle ve sonra değişkeni o tarihe ayarla". Eğer bu başka bir yolla yapılabilseydi, bu en çok takdir edilecektir.
— EXCEL LOVER

Yanıtlar:


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

Klasörleri oluşturmak için bugünün tarihini kullanmak istediğinizi varsayalım,

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

için:

StartDate = DateValue(date)

Başka bir şey istiyorsan, korkarım sorunun açık değil ve daha fazla netliğe ihtiyacı var.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.