2016-02-05 9 views
0

Я пытаюсь написать код, который использует щелчок на кнопке, который захватывает данные из моей рабочей книги и затем вставляет ее в мою выходную книгу. Проблема, которую я не могу понять, заключается в том, что мои рабочие книги меняют по дате, но все они в одном и том же соглашении об именах. Я хочу, чтобы код вытащил последний файл ввода даты, а затем вставил его в выходную книгу. Я не знаю, с чего начать .. любая помощь ценится.Копирование данных из одной книги excel в другую

Благодаря

+0

Я понятия не имею, о чем вы спрашиваете. Вам нужно будет [изменить], чтобы сделать его более понятным. При этом помните, что у нас есть информация ZERO о том, что вы пытаетесь сделать, кроме того, что вы говорите нам в своем вопросе; мы не можем читать ваши мысли, чтобы выяснить, что вы пытаетесь нам рассказать. Пожалуйста, четко сформулируйте проблему и ** задайте конкретный вопрос **. См. [Как задать хороший вопрос здесь?] (Http://stackoverflow.com/help/how-to-ask) для некоторых советов. –

+0

Хорошо, прошу прощения, я постараюсь исправить это. –

ответ

1

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

Function NewestFileName(ByVal Path As String, ByVal FileTemplate As String) As String 

    ' * Finds, and returns the name of, the newest file in folder Path with a name 
    ' that matches FileTemplate. Returns "" if no matching file is found. 

    ' * Path   Folder in which to search for files 
    ' * FileTemplate File name specification of the file required. For example: 
    '      MyFile*.xls 

    ' 25Jul11 Copied from RiskRegisterControl V43.xls. 
    ' 22Nov11 Name changed from NewestFile to NewestFileName to match NextFileName. 
    ' 20Apr12 Minor improvements 

    Dim FileDateCrnt    As Date 
    Dim FileDateNewest   As Date 
    Dim FileNameCrnt    As String 
    Dim FileNameNewest   As String 

    If Right(Path, 1) <> "\" Then 
    Path = Path & "\" 
    End If 

    FileNameCrnt = Dir$(Path & FileTemplate) 
    If FileNameCrnt = "" Then 
    NewestFileName = "" 
    Exit Function 
    End If 

    FileNameNewest = FileNameCrnt 
    FileDateNewest = FileDateTime(Path & FileNameCrnt) 
    Do While True 
    FileNameCrnt = Dir$ 
    If FileNameCrnt = "" Then Exit Do 
    FileDateCrnt = FileDateTime(Path & FileNameCrnt) 
    If FileDateCrnt > FileDateNewest Then 
     FileNameNewest = FileNameCrnt 
     FileDateNewest = FileDateCrnt 
    End If 
    Loop 

    NewestFileName = FileNameNewest 

End Function 
+0

Я думаю, что это то, что мне нужно ... все, что я хочу, это когда я нажимаю кнопку на моем выходном листе Excel, он копирует все, начиная с самого текущего ввода лист и вставляет его в выходной лист –

+1

Это сайт, где программисты помогают друг другу развивать свои навыки. Никто не может запрограммировать весь ваш макрос для вас. Разделите свое требование на несколько шагов: (1) Найдите последнюю книгу, (2) откройте книгу как «Src», (3) скопируйте выбранный лист из «Src' в' ThisWorkbook' (4) Закрыть 'Src' без сохранения изменений (5) Свяжите макрос с кнопкой. Я дал вам код для шага (1). Посмотрите, как открыть книгу. Вы должны расплывчато для меня, чтобы убедиться, что мой шаг (3) - это то, что вы хотите, чтобы уточнить ваше требование. Если мой шаг (3) правильный, найдите копии рабочих листов или используйте макрорекордер. , , –

+1

Посмотрите шаги (4) и (5). Если вы столкнетесь с трудностями, просите о помощи один шаг как раз. Вы можете сами создать свой макрос, если разобьете его, как я предлагаю. Счастливое программирование. –

Смежные вопросы