使用列范围检查是否存在多个文件路径,然后编写“ ok / nok”

时间:2019-10-25 23:17:06

标签: excel vba

这是场景:

  • 我有一张工作表,在“ A”列中有许多不同的文件夹路径
  • A列的行数未知
  • “ C:\ Program Files \ xxxx”中的文件夹结构
  • 文件夹结构“ C:\ Program Files \ Year \ Month \ sheet.xls中的
  • .xls个文件

我需要一个VBA脚本来检查 *验证A列中的每个文件夹路径是否已经存在,然后在B列中相应地写“ ok” /“ nok” *验证文件夹结构中的.xls文件是否正确放置

如果可能的话,最好有一个Sub来验证文件夹结构,再有一个Sub来验证.xls文件。

1 个答案:

答案 0 :(得分:0)

这是找出文件夹结构是否存在的方法。我没有足够的信息来知道如何验证哪些工作簿应该位于哪个文件夹中。希望这会帮助您入门。

您需要转到工具>>参考,然后搜索Microsoft脚本运行时。

Option Explicit

Sub Check_Folder_Path()
    Dim i As Long, lastRow As Long
    Dim myPath As String

    Dim oFSO As Scripting.FileSystemObject
    Set oFSO = CreateObject("Scripting.FileSystemObject")

    lastRow = Range("A" & Rows.Count).End(xlUp).Row

    For i = 1 To lastRow

        ' Check if the path contains a file. If so, extract only the file path.
        If Right(Cells(i, 1), 3) = "xls" Or Right(Cells(i, 1), 4) = "xlsx" Then
            myPath = Left(Cells(i, 1), InStrRev(Cells(i, 1), "\"))
        Else
            ' Ensure the last character is "\"
            If Right(Cells(i, 1), 1) <> "\" Then
                myPath = Cells(i, 1) & "\"
            Else
                myPath = Cells(i, 1)
            End If
        End If

        ' Check if folder exists
        If oFSO.FolderExists(myPath) = True Then
            Cells(i, 2) = "OK"
        Else
            Cells(i, 2) = "NOK"
        End If

    Next i

    Set oFSO = Nothing
End Sub

在项目中万事如意!