使用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为空单元格和值的单元格,所以它可能不是你所需要的。 如果你能澄清这个要求,那么我们可以稍微调整一下