Макрос для поиска, если файл существует и оставить Y или N в ячейке Excel? - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь заполнить ячейку в Excel буквой Y или N, если файл существует. Я думаю, что мне нужен макрос, потому что я не уверен, что формула будет работать. Если мое имя файла \ xyzmedia \ 08242018abcapp \ wyoming \ archive и будет в ячейке C10; Какой код я могу использовать, чтобы заполнить конкретную ячейку Excel с Y или N? в данном конкретном случае, скажем, ячейка D10. Я буду делать это примерно для 8 файлов в день, поэтому 8 ячеек необходимо обновить. в идеале я бы хотел, чтобы все они обновлялись с помощью одного макроса.

если бы я мог также включить кнопку «Поиск файлов» на листе для запуска макроса, это было бы ИЗУМИТЕЛЬНО.

даты меняются каждый день, поэтому я полагаю, что мне придется менять даты в 5 макросах вручную каждую неделю, и это нормально. но есть ли обходной путь? еще раз, если нет, то все в порядке.

Я понятия не имею, что я делаю, потому что я очень плохо знаком с макросами ... но после некоторого исследования, возможно, код будет выглядеть примерно так ?? ( Проверьте, существует ли файл с использованием 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 голосов
/ 26 августа 2018

Вот код для вас ......, чтобы немного помочь.

'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
...