0

我在将语法放在一起时遇到了麻烦,我刚开始在 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
4

2 回答 2

2

改变

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

 firstRange.Offset(0, 5).Value = fsoFol.Name
于 2013-01-11T02:14:23.450 回答
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,因此它可能不是您需要的。如果你能澄清这个要求,那么我们可以稍微改变一下

于 2013-01-11T03:17:00.743 回答