![]() |
Set Cell Value
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 |
Set Cell Value
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 |
All times are GMT +1. The time now is 05:17 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com