Excel VBA DIR()函数不使用文件名中的空格

时间:2017-03-23 03:12:01

标签: excel excel-vba vba

有人可以告诉我为什么第一个代码有效但第二个代码没有?

Set wb = ThisWorkbook
FName = "C:\Users\PHReyesDa\Desktop\CF\ExcelLogsheets\Evaporator\LogSheetFile\ProductArchive\Scanima_" & Range("BO1") & ".xlsx"
FNameTwo = "Scanima_" & Range("BO1") + ".xlsx"

'If statement Setup (if exist)
FilePath = FName
    TestStr = ""
    On Error Resume Next
    TestStr = Dir(FilePath)
    On Error GoTo 0

'If statement

If TestStr = "" Then
        'If not existing, execute
        'code
End If

但这不起作用:

Set wb = ThisWorkbook
FName = """N:\Nestle Nutrition\02 NN Process\01 Team Folders\Logsheets\Product Archive\Scanima_" & Range("BO1") & ".xlsx"""
FNameTwo = "Scanima_" & Range("BO1") & ".xlsx"

'If statement Setup (if exist)
FilePath = "N:\Nestle Nutrition\02 NN Process\01 Team Folders\Logsheets\Product Archive\Scanima_" & Range("BO1") & ".xlsx"
    TestStr = ""
    On Error Resume Next
    TestStr = Dir(FilePath)
    On Error GoTo 0

'If statement

If TestStr = "" Then
        'If not existing, execute
        'code
End If

我猜测问题在于文件路径中的空格。它不在路径本身,因为我在其他地方使用了FName和FNameTwo并且它可以工作。此外,在第二个代码中,我需要使用与FilePath不同的FName(当然,附加引号)。如果我在FilePath中包含了额外的引号,它会给我一个"错误的文件名"错误。我也尝试直接输入DIR()函数的路径,尝试使用和不使用额外的引号,尝试使用chr(34),没有任何作用。请帮助理解DIR()函数中的空格,谢谢!

编辑:我想我错过了一个信息。当我包含额外的引号时,我收到错误:"错误的文件名"。但是,当我只是将文件路径放在而没有额外的引号时,我在运行代码时不会出错,但是,代码将其读作"不存在&# 34;每次和if语句下的代码每次运行。感谢。

0 个答案:

没有答案