我无法将语法放在一起,我刚开始在VBA中使用FSO,所以请耐心等待。
fsofol.name = test1(这是正确的)
我正在尝试确定每个单元格是否在“A”列中有任何数据,如果是,请将文件夹的名称放在我列出的偏移单元格中。我希望我能够接近,但如果有人能提出建议,我将不胜感激。谢谢!
我在下面的问题行中添加了一条注释
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
答案 0 :(得分:2)
更改
fsoFol.Name.Copy **'error is here and states object required**
firstRange.Offset(0, 5).PasteSpecial xlPasteValues
到
firstRange.Offset(0, 5).Value = fsoFol.Name
答案 1 :(得分:1)
假设FSO是Scripting.FileSystemObject
并且您想要处理名为“test1”的文件夹中的所有“V * .xls”文件,那么您将错过几个步骤:
创建文件系统对象
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文件并将其分配给变量
' 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个单元格,但只查看复制的第一个单元格的值。此外,对于空单元格和具有值的单元格,测试Like "*"
将返回True,因此它可能不是您需要的。如果你能澄清这个要求,那么我们可以稍微移动一下