2013-02-23 17 views
-2

Я пытаюсь создать некоторые VBA код, чтобы сделать следующее:Excel VBA код для копирования вкладок в новую книгу на основе имени вкладки

  1. Конкретная папка содержит несколько файлов Excel и каждая вкладка имеет название (скажем) города.

  2. Список исключений определяет, к какой стране принадлежит город. (столбец A = Лондон, Париж, Бостон, Нью-Йорк и колонка B = Великобритания, Франция, США, США)

  3. Я хотел бы, чтобы код переходил через папку и создавал дополнительный файл для каждой страны, перегруппировав все города (имеется только одна вкладка для каждого города, но есть несколько файлов)

До сих пор ничто, что я пытался, похоже, не работает.

+3

Пожалуйста, покажите нам то, что вы пробовали, который потерпел неудачу. :). –

ответ

0

вопрос экстремально широкий, но эта базовая логика может помочь:

Используйте этот пост, чтобы работать, как цикл через каталог: Specify Additional Directory to Loop Through Excel/VBA

Этот шаблон код должен дать вам достаточно, чтобы начать работу. Поработайте с ним, улучшите свой вопрос, и мы сможем помочь вам в дальнейшем.

Option Explicit 

Sub CopySomeSheets() 

    ' Loop through directory as in Question of this post 
    Dim wb As Workbook 
    Dim ws As Worksheet 

    Dim cityNameList() As Variant 
    Dim cityName As Variant 


    ' Pseudocode, next line is a dummy to make example code run 
    Set wb = ActiveWorkbook 
    ' For Each wb In directory, as from post above 
     For Each ws In wb.Worksheets 
      For Each cityName In cityNameList 

       ' Could do this as a loop for each country or think a bit more and produce a smarter iteration with range lookup/2d array or somethnig to better match the shape of your data 
       cityNameList = Range("A1:A10") ' List of cities are in this range 
       If InStr(ws.Name, cityName) Then 
        ' Do stuff, i.e. save workbook with required name 
       End If 

      Next cityName 
     Next ws 
    ' Next wb 




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