Как выбрать рабочую книгу со случайным именем, если у вас есть 2 открытых книги - PullRequest
0 голосов
/ 17 декабря 2018

Итак, по сути, я экспортирую набор данных с веб-сайта, и набор данных поставляется в виде файла Excel.Файл всегда называется так: «Task_State_ (Pivot) _xxxxxx» X - это случайная строка чисел.Работа, которую я выполняю, заключается в том, чтобы я открыл 2 файла Excel, включая загруженный файл, и взял загруженный файл (task_State_ (Pivot)), взял эти данные и скопировал их в другой файл Excel, который действует как своего рода мастер-файл.У меня вопрос: как выбрать эту книгу, если я не знаю ее полное название из-за случайной строки чисел в конце?Я не могу активировать рабочую книгу, потому что у меня нет полного имени, потому что оно всегда меняется.Есть предложения?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Ответ выше - хорошее начало, но я бы добавил кое-что, чтобы пользователь мог подтвердить правильное имя листа один раз в начале:

Примечание: у вас могут быть открыты другие таблицы или если выпри использовании макросов у вас также может быть открыта личная книга макросов (в фоновом режиме) - вы не хотите писать об этом.

  1. создайте глобальную переменную для хранения имени книги, над которой вы работаете сегодня, и при первом попытке кода открыть ее, попросите пользователя подтвердить имя:
    Например: Dim strGlobalNewWorkbook As String

  2. внутри цикла (и если), который предлагает Михал Роза, поместите код, который делает это:

        If MsgBox("please confirm that you want to process workbook: " & wb.Name, vbOKCancel) = vbOK Then
        strGlobalNewWorkbook = wb.Name
        Exit Sub
    End If
    
  3. тогда вы можете получить доступ к нужной книге из кода, используя формат: Application.Workbooks (strGlobalNewWorkbook) .Name 'например: получить имя обратно

0 голосов
/ 17 декабря 2018
Dim wb As Workbook

For Each wb In Application.Workbooks
  If wb.Name <> "your_file_name" Then

        'do whatever you want ot do with your other wb

  End If
Next wb
...