Хобрук: Ваш путь к мастерству в программировании

Код VBA для поиска группы файлов в папке всегда в том же порядке и вставки определенных ячеек в основной файл

У меня есть проблема с excel vba, которую я пытаюсь решить, и после поиска в Интернете и на многих форумах я безуспешно.

вопрос 1: Можно ли открыть файл BrianJohnson.xlsx, если в ячейке a2 написано Brian Johnson (или даже BrianJohnson)? будет около 30 файлов, которые я хотел бы открыть таким образом, чтобы мастер-файл мог использовать ссылки на ячейки в других листах, и ничего не пошло не так.

        Sub aaron_gather()
'
' aaron_gather Macro
Dim bestandopen
Application.ScreenUpdating = False
On Error Resume Next 'if there are no 12 sheets
 bestandopen = Dir("H:\Americorps\*")
    Do Until bestandopen = ""
      If bestandopen = "" Then Exit Do
       If Not bestandopen = "Americorps Master Sheet 1.xlsm" Then
        Workbooks.Open "H:\Americorps\" & bestandopen
    ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1) = ActiveWorkbook.Name
         For i = 1 To 12
          ThisWorkbook.Sheets("Total Hours").Cells(Rows.Count, 1).End(xlUp).Offset(, i) = ActiveWorkbook.Sheets(i).Range("E43")
         Next i
       ThisWorkbook.Sheets("Total Hours").Columns.AutoFit
    Workbooks(bestandopen).Close
 End If
      bestandopen = Dir
    Loop
End Sub
29.07.2012

  • Похоже, в вашем коде есть все, чтобы ответить на вопрос1. Непонятно, был ли у вас другой вопрос... 30.07.2012
  • Привет, Тим, я думаю, что мой вопрос был написан неправильно, как мне открыть файл brianjohnson.xlsx, когда на моем мастер-листе написано «Брайан Джонсон», и поместить все данные, которые я собираю, в строку 11 мастер-листа. этот макрос копирует и вставляет из файлов в зависимости от их порядка в папке. Я хочу, чтобы порядок всегда был одинаковым. 30.07.2012

Ответы:


1

Скомпилировано, но не проверено...

Sub Test()

Const FLDR_PATH As String = "H:\Americorps\"
Dim c As Range, wbSource As Workbook
Dim shtTH As Worksheet, i As Integer
Dim cellTH As Range, filepath As String

    Set shtTH = ThisWorkbook.Sheets("Total Hours")

    For Each c In shtTH.Range("A2:A10") 'are names on total hours sheet?

        filepath = FLDR_PATH & Replace(c.Value, " ", "") & ".xlsx"

        If Len(Dir(filepath, vbNormal)) > 0 Then
            c.Font.ColorIndex = xlAutomatic
            Set wbSource = Workbooks.Open(filepath, , True) 'readonly

            For i = 1 To 12
                'copy values to same row as filename source
                c.Offset(0, i).Value = _
                    wbSource.Sheets(i).Range("E43").Value
            Next i

            wbSource.Close False
        Else
            c.Font.Color = vbRed 'file not found
        End If

    Next c

End Sub
30.07.2012
  • filepath = FLDR_PATH & Replace(c.Value, , ) & .xlsx вызывает у меня проблемы в FLDR_PATH, говоря, что требуется постоянное выражение 31.07.2012
  • странно, я попробовал в четвертый раз, и это сработало прекрасно, спасибо за всю вашу помощь, Тим! 31.07.2012
  • Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

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

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

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..