Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
I'm new to this. Would appreciate advice on the following issue about a macro in VB: I want to loop through a folder and get all the file names in the folder. Then I will then set the cell values on "C" column in "Sheet2" to these file names. What's the correct syntax for setting the cell values? I'm looking for something like: Dim i As Integer i = 1 For Each fileName In fileNames i++; Sheet2.Cell(i,3).value = fileName; Next Clearly this doesn't work because the syntax is not correct. Any input? Many thanks! -Emily |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Since you seem to ahve some fimiliarty with C/C++ syntax I will assume that
you have some familiarity with programming. My recommendation would be to look in the help at File System Objects (fso). They can do everything you need. Here is some code that I use. It looks at folders and subfolders(if you want). It requires a reference to "Microsoft Scripting Runtime" Option Explicit Option Compare Text Sub test() Call ListFiles("G:\Management", Sheet4.Range("A2"), "dbq", True) End Sub Public Sub ListFiles(ByVal strPath As String, _ ByVal rngDestination As Range, Optional ByVal strFileType As String = "*", _ Optional ByVal blnSubDirectories As Boolean = False) Dim objFSO As Scripting.FileSystemObject Dim objFolder As Scripting.Folder Dim objFile As Scripting.File Dim strName As String 'Specify the file to look for... strName = "*." & strFileType Set objFSO = New Scripting.FileSystemObject Set objFolder = objFSO.GetFolder(strPath) For Each objFile In objFolder.Files If objFile.Name Like strName Then rngDestination.Value = objFile.Path rngDestination.Offset(0, 1).Value = objFile.DateLastAccessed Set rngDestination = rngDestination.Offset(1, 0) End If Next 'objFile Set objFile = Nothing 'Call recursive function If blnSubDirectories = True Then _ DoTheSubFolders objFolder.SubFolders, rngDestination, strName Set objFSO = Nothing Set objFolder = Nothing End Sub Function DoTheSubFolders(ByRef objFolders As Scripting.Folders, _ ByRef rng As Range, ByRef strTitle As String) Dim scrFolder As Scripting.Folder Dim scrFile As Scripting.File Dim lngCnt As Long On Error GoTo ErrorHandler For Each scrFolder In objFolders For Each scrFile In scrFolder.Files If scrFile.Name Like strTitle Then rng.Value = scrFile.Path rng.Offset(0, 1).Value = scrFile.DateLastAccessed Set rng = rng.Offset(1, 0) End If Next 'scrFile 'If there are more sub folders then go back and run function again. If scrFolder.SubFolders.Count 0 Then DoTheSubFolders scrFolder.SubFolders, rng, strTitle End If ErrorHandler: Next 'scrFolder Set scrFile = Nothing Set scrFolder = Nothing End Function '------------------- -- HTH... Jim Thomlinson " wrote: Hi, I'm new to this. Would appreciate advice on the following issue about a macro in VB: I want to loop through a folder and get all the file names in the folder. Then I will then set the cell values on "C" column in "Sheet2" to these file names. What's the correct syntax for setting the cell values? I'm looking for something like: Dim i As Integer i = 1 For Each fileName In fileNames i++; Sheet2.Cell(i,3).value = fileName; Next Clearly this doesn't work because the syntax is not correct. Any input? Many thanks! -Emily |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Code to copy the formulae of one cell to all the cell in the rangewith the specific cell and columnnumber changing Options | Excel Discussion (Misc queries) | |||
Code to copy the formulae of one cell to all the cell in the rangewith the specific cell and columnnumber changing | Excel Discussion (Misc queries) | |||
Populate a cell if values in cell 1 and cell 2 match cell 3 and 4 | Excel Worksheet Functions | |||
How to create/run "cell A equals Cell B put Cell C info in Cell D | Excel Discussion (Misc queries) | |||
Question: Cell formula or macro to write result of one cell to another cell | Excel Programming |