Как прочитать каждый файл в одной папке, совпадающей с именами файлов, введенными в диапазон ячеек (Excel)?И сделать ли одно и то же действие для всех файлов? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть wks, который содержит таблицу с заголовками «Имя файла» и «Количество».

Столбец «Имя файла» предварительно заполнен именами файлов, которые, как я ожидаю, будут находиться в том же каталоге.папка.

Я хочу создать код vba, который может автоматически подсчитывать количество записей в столбце A для каждого из этих файлов - по имени в столбце «Имя файла» и возвращать счет в столбце «Количество» всоответствующая строка этого имени файла.Между данными не будет пробелов.

Все эти имена файлов, указанные в Excel, существуют в одной и той же папке.

Например: c: \ path ... \ TestFolder Содержит все файлы с именами на листе

В столбце «Имя файла» на рабочем листе у меня есть «Test1» в ячейке A3, «Следующий тест» в ячейке A4 ...

Я хочу, чтобы vba разрешил пользователювыберите расположение папки (c: \ path ... \ TestFolder) и, если в «TestFolder» существует «Test1», посчитайте, сколько записей в столбце A «Test1», верните ответ в столбце «Count» в ячейке B3,Перейдите к следующему файлу в столбце «Имя файла», который называется «Следующий тест» в ячейке A4.Возврат счета к B4 и т. Д.

Все эти файлы в формате .csv.

Любая помощь будет оценена.

Спасибо

Это Excel vba,Я пытался найти решение, но не смог найти онлайн.и запрос кажется довольно сложным.

Dim Path, myPath As String
Dim FileName, MsgStr As String
Dim lastRow, lastRowMas As String
Dim extractDate As String
Dim enteredName As String
Dim C As Range
Dim Wkb As Workbook
Dim WS As Worksheet
Dim FldrPicker As FileDialog

'user interface to pick folder location
Set FldrPicker = Application.FileDialog(msoFileDialogFilePicker)

    With FldrPicker
        .Title = "Select A Target Folder"
        .AllowMultiSelect = False
            If .Show <> -1 Then GoTo CleanEnd
            myPath = .SelectedItems(1)
    End With

For Each C In ThisWorkbook.Worksheets("Sheet1").Range("A6:A10")
    If C.Value2 = "" Then
        If MsgStr = "" Then
'still working on the messaging for any missing file
        End If
    End If
Loop

'enteredName is what under "File Name" (A5) in range A6:A10

'open files that exist in the folder selected
FileName = Dir(myPath & "\" & enteredName &".csv", vbNormal)
Do Until FileName = ""
    Set Wkb = Workbooks.Open(FileName:=myPath & "\" & FileName)
    For Each WS In Wkb.Worksheets   'state actions below
        'get count of used cells in column A
        'enter count of used cells in MasterSheet - same row as the name column, in column named "Count"
    Next WS
    Wkb.Close False
    FileName = Dir()
Loop    'next file and actions

Я ожидаю, что выход «вверх» выполняется одним нажатием кнопки, при этом выполняется код, который автоматически считывает все перечисленные файлы в выбранной папке и возвращает каждый из количества записей в соответствующихстрока в столбце с именем «Count».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...