Доброго утра всем. Кто сможет, помогите пожалуйста. Суть вопроса: Есть у нас в организации общая папка, куда все сотрудники скидывают сканы и анкеты. В этих анкетах всегда ячейки абсолютно одинаковые и содержат одинаковые, по сути, данные. Хотелось бы в исходный файл добавить кнопку чтоб при нажатии её можно было выбрать ту анкету с которой достать данные с некоторых ячеек. Спасибо.
Доброго утра всем. Кто сможет, помогите пожалуйста. Суть вопроса: Есть у нас в организации общая папка, куда все сотрудники скидывают сканы и анкеты. В этих анкетах всегда ячейки абсолютно одинаковые и содержат одинаковые, по сути, данные. Хотелось бы в исходный файл добавить кнопку чтоб при нажатии её можно было выбрать ту анкету с которой достать данные с некоторых ячеек. Спасибо.seva_compani
[/vba] по её адресу "\nameOutNameLocalDisk\nameFolder\nameFile.format". (тоесть обратиться к сетевому имени удалённого диска, и там в нужном пути найти файл). В вашей постановке вопроса мне не очень ясно, какие данные Вы хотите забрать и чем является приложенный файл (примером анкеты, или примером файла, куда Вы данные забираете с анкеты(в этом случае, нужен файл-пример анкеты)).
seva_compani, Можно открыть книгу с помощью [vba]
Код
WorkBooks.Open
[/vba] по её адресу "\nameOutNameLocalDisk\nameFolder\nameFile.format". (тоесть обратиться к сетевому имени удалённого диска, и там в нужном пути найти файл). В вашей постановке вопроса мне не очень ясно, какие данные Вы хотите забрать и чем является приложенный файл (примером анкеты, или примером файла, куда Вы данные забираете с анкеты(в этом случае, нужен файл-пример анкеты)).Roman777
Roman777, файл "дкп" это будет документ куда данные должны прописываться. А анкеты находятся в папках, например: февраль\15.02.2018\Пушкин - февраль\15.02.2018\Лермонтов и так далее. Каждый день в феврале создается папка и продолжается февраль\16.02.2018\Толстой и так далее. ШАблон анкеты во вложении, на всякий случай желтым выделены те ячейки которые должны будут с анкеты перейти в файл "ДКП".
Roman777, файл "дкп" это будет документ куда данные должны прописываться. А анкеты находятся в папках, например: февраль\15.02.2018\Пушкин - февраль\15.02.2018\Лермонтов и так далее. Каждый день в феврале создается папка и продолжается февраль\16.02.2018\Толстой и так далее. ШАблон анкеты во вложении, на всякий случай желтым выделены те ячейки которые должны будут с анкеты перейти в файл "ДКП".seva_compani
seva_compani, Вот таким образом попробуйте... [vba]
Код
Sub Макрос1() Dim FilePath$ Dim WbRead As Workbook Dim TWB As Workbook Dim o With Application.FileDialog(msoFileDialogFilePicker) .Title = "Папка для работы с файлами" .ButtonName = "Select": .AllowMultiSelect = False If .Show Then FilePath = .SelectedItems(1) Else Exit Sub End With Set WbRead = Workbooks.Open(Filename:=FilePath, ReadOnly:=True) Set o = CreateObject("Scripting.dictionary") With WbRead.Worksheets("Анкета Общая") o.Add 6, .Cells(5, 3) o.Add 26, .Cells(8, 3) o.Add 27, .Cells(12, 3) o.Add 29, .Cells(14, 3) o.Add 28, .Cells(16, 3) o.Add 30, .Cells(31, 3) o.Add 31, .Cells(35, 3) End With Dim i As Integer Set TWB = ThisWorkbook For i = 6 To 31 If (o.exists(i)) Then TWB.Worksheets("Ввод данных").Cells(i, 2) = o(i) End If Next i Application.DisplayAlerts = False WbRead.Close Application.DisplayAlerts = True End Sub
[/vba]
seva_compani, Вот таким образом попробуйте... [vba]
Код
Sub Макрос1() Dim FilePath$ Dim WbRead As Workbook Dim TWB As Workbook Dim o With Application.FileDialog(msoFileDialogFilePicker) .Title = "Папка для работы с файлами" .ButtonName = "Select": .AllowMultiSelect = False If .Show Then FilePath = .SelectedItems(1) Else Exit Sub End With Set WbRead = Workbooks.Open(Filename:=FilePath, ReadOnly:=True) Set o = CreateObject("Scripting.dictionary") With WbRead.Worksheets("Анкета Общая") o.Add 6, .Cells(5, 3) o.Add 26, .Cells(8, 3) o.Add 27, .Cells(12, 3) o.Add 29, .Cells(14, 3) o.Add 28, .Cells(16, 3) o.Add 30, .Cells(31, 3) o.Add 31, .Cells(35, 3) End With Dim i As Integer Set TWB = ThisWorkbook For i = 6 To 31 If (o.exists(i)) Then TWB.Worksheets("Ввод данных").Cells(i, 2) = o(i) End If Next i Application.DisplayAlerts = False WbRead.Close Application.DisplayAlerts = True End Sub