2014-03-29 106 views
0

我已經寫下面的一段代碼來訪問文件並將內容從一個文件複製到另一個文件。儘管文件出現錯誤,同時打開文件的文件夾中是否存在我使用Excel 2007中Excel VBA文件未找到雖然文件存在

子copypaste()

Dim strFolder As String 
Dim strFileName As String 
Dim wb As Workbook 
strFolder = "C:\Users\user\Desktop\sample\" 
strFileName = Dir(strFolder & "*.xlsx") 
Dim eRow 
Dim a As Variant 
Dim b As Variant 
Do While Len(strFileName) > 0 
**Set wb = Workbooks.Open(strFileName)** 
a = Cells(7, 7) 
b = Range("D11:F11") 
ActiveWorkbook.Close 
    Worksheets("sheet1").Cells(7, 7) = a 
    Worksheets("sheet1").Cells(7, 8) = b 
    strFileName = Dir 
Loop 
End Sub 

。在調試模式下,變量strFileName包含文件名,但文件仍未打開。我收到「Set wb = Workbooks.Open(strFileName)」錯誤。「

在此先感謝您的幫助!

回答

1

Workbooks.Open需要完整路徑到工作簿。我懷疑你想:

Set wb = Workbooks.Open(strFolder & strFileName) 
+0

非常感謝SilentD..this是什麼失蹤。它的工作原理:D – user3475262

0

您需要更換雙\\所有\在您的路徑

或者在你的字符串前面加上@。

這是因爲\是轉義字符串的字符,如\ n \ s等等,所以字母在\轉換後。嘗試打印您的路徑,您會看到附加內容。

編輯

也可以嘗試:

FileToOpen = Application.GetOpenFilename _ 
(Title:="Please choose a Report to Parse", _ 
FileFilter:="Report Files *.xls (*.xls),"); 
Set wb2 = Workbooks.Open(Filename:=FileToOpen) 
+0

我用這個strFolder =「C:\\ \\用戶\\用戶\\桌面\\樣本」,但仍然得到同樣的錯誤 – user3475262

+0

嘗試打印VAR strfilename,並將其粘貼這裏。 –

+0

這是什麼strfilename包含invoice.xlsx.This是我試圖打開的文件名 – user3475262