使用FSO根据满足条件将文件夹名称插入到单元格中

我在编写语法时遇到了麻烦,而我刚刚开始使用VBA中的FSO,请耐心等待。

fsofol.name = test1(这是正确的)

我试图确定每个单元格是否有列“A”中的任何数据,如果是这样,将文件夹的名称放在我列出的偏移单元格中。 我希望我近在咫尺,但是如果有人能够提出一个build议,我将不胜感激。 谢谢!

我在下面的问题行中写了一个注释

Dim fsoFol As Object If fileName Like "V*.xls" Then wbkCS.Worksheets("Cut Sheet").Range("S4:S2000").Copy With wbkVer.Worksheets("Cutsheets") Set firstRange = .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0) firstRange.PasteSpecial xlPasteValues If firstRange.Value Like "*" Then fsoFol.Name.Copy **'error is here and states object required** firstRange.Offset(0, 5).PasteSpecial xlPasteValues End If End With 

更改

  fsoFol.Name.Copy **'error is here and states object required** firstRange.Offset(0, 5).PasteSpecial xlPasteValues 

  firstRange.Offset(0, 5).Value = fsoFol.Name 

假设FSO是Scripting.FileSystemObject ,并且您想要处理名为“test1”的文件夹中的所有“V * .xls”文件,则缺less以下几个步骤:

创build文件系统对象

 Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") 

分配文件夹

 Dim fsoFol As Object Set fsoFol = fso.GetFolder("C:\Temp\test1") 

通过文件工作

 Dim fsoFile As Object For Each fsoFile in fsoFol.Files If fsoFile.Name Like "V*.xls" Then ' code for working with the Excel files goes here End If Next fsoFile 

打开一个特定的Excel文件并将其分配给一个variables

 ' Assuming you have Dim wbkCS As Workbook at the start of the module Set wbkCS = Workbooks.Open(fsoFile.Name) ' code to process the actual file goes here wbkCS.Close False 

我不清楚你想要做什么与复制到wbkVer单元格。 您正在复制近2000个单元格,但仅查看复制的第一个单元格的值。 另外testingLike "*"将返回True为空单元格和值的单元格,所以它可能不是你所需要的。 如果你能澄清这个要求,那么我们可以稍微调整一下