de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Matt Ridge
Matt Ridge
Question

Buat folder dan sub folder di Excel VBA

Saya memiliki menu pull down perusahaan yang diisi oleh daftar di lembar lain. Tiga kolom, Perusahaan, Job #, dan Nomor Bagian.

Ketika sebuah pekerjaan dibuat, saya memerlukan folder untuk perusahaan tersebut dan sub-folder untuk Nomor Bagian tersebut.

Jika Anda menyusuri jalan itu akan terlihat seperti:

C:\Images\Nama Perusahaan\Nomor Bagian\

Jika nama perusahaan atau nomor Part sudah ada, jangan membuat, atau menimpa yang lama. Cukup lanjutkan ke langkah berikutnya. Jadi, jika kedua folder ada, tidak terjadi apa-apa, jika salah satu atau keduanya tidak ada, buatlah sesuai kebutuhan.

Pertanyaan lain, apakah ada cara untuk membuatnya agar berfungsi di Mac dan PC yang sama?

27 2012-05-29T17:23:14+00:00 3
 Community
Community
Pertanyaan edit 20 September 2019 в 2:56
Pemrograman
vba
excel
excel-vba-mac
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
Solution / Answer
Scott Holtzman
Scott Holtzman
29 Mei 2012 в 6:43
2012-05-29T18:43:45+00:00
Lebih
Sumber
Sunting
#16306400

Satu sub dan dua fungsi. Sub membangun path Anda dan menggunakan fungsi untuk memeriksa apakah path tersebut ada dan membuat jika tidak. Jika path lengkap sudah ada, maka akan diteruskan begitu saja. Ini akan bekerja di PC, tetapi Anda harus memeriksa apa yang perlu dimodifikasi untuk bekerja di Mac juga.

'requires reference to Microsoft Scripting Runtime
Sub MakeFolder()

Dim strComp As String, strPart As String, strPath As String

strComp = Range("A1") ' assumes company name in A1
strPart = CleanName(Range("C1")) ' assumes part in C1
strPath = "C:\Images\"

If Not FolderExists(strPath & strComp) Then 
'company doesn't exist, so create full path
    FolderCreate strPath & strComp & "\" & strPart
Else
'company does exist, but does part folder
    If Not FolderExists(strPath & strComp & "\" & strPart) Then
        FolderCreate strPath & strComp & "\" & strPart
    End If
End If

End Sub

Function FolderCreate(ByVal path As String) As Boolean

FolderCreate = True
Dim fso As New FileSystemObject

If Functions.FolderExists(path) Then
    Exit Function
Else
    On Error GoTo DeadInTheWater
    fso.CreateFolder path ' could there be any error with this, like if the path is really screwed up?
    Exit Function
End If

DeadInTheWater:
    MsgBox "A folder could not be created for the following path: " & path & ". Check the path name and try again."
    FolderCreate = False
    Exit Function

End Function

Function FolderExists(ByVal path As String) As Boolean

FolderExists = False
Dim fso As New FileSystemObject

If fso.FolderExists(path) Then FolderExists = True

End Function

Function CleanName(strName as String) as String
'will clean part # name so it can be made into valid folder name
'may need to add more lines to get rid of other characters

    CleanName = Replace(strName, "/","")
    CleanName = Replace(CleanName, "*","")
    etc...

End Function
Scott Holtzman
Scott Holtzman
Jawaban edit 29 Mei 2012 в 7:06
26
0
Chandan Kumar
Chandan Kumar
13 Maret 2014 в 6:50
2014-03-13T18:50:09+00:00
Lebih
Sumber
Sunting
#16306401
Private Sub CommandButton1_Click()
    Dim fso As Object
    Dim tdate As Date
    Dim fldrname As String
    Dim fldrpath As String

    tdate = Now()
    Set fso = CreateObject("scripting.filesystemobject")
    fldrname = Format(tdate, "dd-mm-yyyy")
    fldrpath = "C:\Users\username\Desktop\FSO\" & fldrname
    If Not fso.folderexists(fldrpath) Then
        fso.createfolder (fldrpath)
    End If
End Sub
 mrt
mrt
Jawaban edit 13 Maret 2014 в 7:09
5
0
 alexkovelsky
alexkovelsky
19 Maret 2014 в 2:17
2014-03-19T14:17:38+00:00
Lebih
Sumber
Sunting
#16306402

Berikut ini'sub pendek tanpa penanganan kesalahan yang membuat subdirektori:

Public Function CreateSubDirs(ByVal vstrPath As String)
   Dim marrPath() As String
   Dim mint As Integer

   marrPath = Split(vstrPath, "\")
   vstrPath = marrPath(0) & "\"

   For mint = 1 To UBound(marrPath) 'walk down directory tree until not exists
      If (Dir(vstrPath, vbDirectory) = "") Then Exit For
      vstrPath = vstrPath & marrPath(mint) & "\"
   Next mint

   MkDir vstrPath

   For mint = mint To UBound(marrPath) 'create directories
      vstrPath = vstrPath & marrPath(mint) & "\"
      MkDir vstrPath
   Next mint
End Function
Marcus Mangelsdorf
Marcus Mangelsdorf
Jawaban edit 16 Maret 2017 в 10:59
0
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 1 hari yang lalu
2
Akshit Mehta
Terdaftar 4 hari yang lalu
3
me you
Terdaftar 1 minggu yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
RU
TR
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi