搜索文件是否存在并在Excel单元格中保留Y或N的宏?

时间:2018-08-25 11:17:21

标签: excel excel-vba

如果文件存在,我试图用Y或N填充excel单元格。我认为我需要一个宏,因为我不确定公式是否会起作用。如果我的文件名为\ xyzmedia \ 08242018abcapp \ wyoming \ archive,并且位于单元格C10中;我可以使用什么代码用Y或N填充特定的Excel单元格?在这种特定情况下,假设单元格D10。我每天大约要处理8个文件,因此需要更新8个单元格。理想情况下,我希望它们都通过同一宏进行更新。

如果我还可以在工作表上嵌入一个“搜索文件”按钮来运行宏,那将是惊人的。

日期每天都会更改,所以我想我必须每周手动更改5个宏中的日期,这很好。但是有解决方法吗?再一次,如果没有的话,完全可以。

我不知道我在做什么,因为我对宏还很陌生..但是经过一些研究,也许代码会是这样的?? (Check if the file exists using VBA):

Sub test()

thesentence = InputBox("\\xyzmedia\08242018abcapp\wyoming\archive", "Raw Data File")

Range("A1").Value = thesentence

If Dir("thesentence") <> "" Then
    D10 = "Y"
Else
    D10 = "N"
End If

End Sub

请帮助!谢谢!!

1 个答案:

答案 0 :(得分:0)

这里有一些代码可以为您提供帮助...

'To check if a particular file exists
'excelFile = False, if it is not an Excel file that is being checked
Public Function isAnExistingFile(ByVal fileNameStr As Variant, Optional ByVal excelFile As Boolean = True) As Boolean
Dim wb As Workbook

isAnExistingFile = True
On Error Resume Next
If Not VarType(fileNameStr) = vbString Then
    isAnExistingFile = False
ElseIf Len(fileNameStr) = 0 Then
    isAnExistingFile = False
ElseIf Len(Dir(fileNameStr)) = 0 Then
    isAnExistingFile = False
ElseIf ((GetAttr(fileNameStr) And vbDirectory) <> vbDirectory) = False Then
    isAnExistingFile = False
Else
    If excelFile Then
        Set wb = Application.Workbooks.Open(Filename:=fileNameStr, UpdateLinks:=0, ReadOnly:=True)
        If wb Is Nothing Then isAnExistingFile = False
        If Not wb Is Nothing Then
            wb.Close False
            Set wb = Nothing
        End If
    End If
End If
Err.Clear: On Error GoTo 0

End Function