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

时间:2013-01-11 02:08:49

标签: excel excel-vba vba

我无法将语法放在一起,我刚开始在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

2 个答案:

答案 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,因此它可能不是您需要的。如果你能澄清这个要求,那么我们可以稍微移动一下