2013-01-11 51 views
0

我很難將語法放在一起,因此我剛開始使用VBA中的FSO,請耐心等待。使用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

你實際上沒有在上面的代碼中將'fsoFol'應用到一個對象上。在這個階段你有一個FSO對象嗎?加上你錯過了一個'結束IF' – brettdj

+0

對不起,是的。所有這些都在那裏,只是沒有發佈,因爲我只需要該行的正確語法,克里斯在下面回答。雖然謝謝! – Mike

+0

在發佈任何未來問題之前,您可能需要參考http://tinyurl.com/so-hints,特別是「示例代碼和數據」部分 – barrowc

回答

2

變化

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

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

正是我在找的東西。再次感謝Chris! :) – Mike

1

假設FSO是Scripting.FileSystemObject,並要通過所有的工作名爲「test1」的文件夾中的「V * .xls」文件中,缺少幾個步驟:

創建文件系統對象

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

分配通過文件

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文件的工作文件夾

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

,並將其分配給一個變量

' 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爲空單元格和單元格值,所以它可能不是你所需要的。如果你能澄清那個需求,那麼我們可以移動一些東西

相關問題