Вопрос : Листы зернокомбайна в Workbook

Я имел workbook первенствовать имеет 6 потребность worksheets

Sheet A
Sheet B
Sheet C
Sheet D
Sheet E
Combined

I совместить все данные в каждом листе a, b, c, d, & e в одно рабочий лист.  Данные, котор мне нужно скопировать старты на рядке 4; однако, каждое рабочий лист кончается на по-разному рядке (который smog изменить еженедельник).  Как делаю я выберите первым рядком, который будет рядок 4; после этого экземпляр вниз к последнему рядку с data.

I прикреплял архив так, что вы сможете увидеть первоначально листы и совмещенное рабочий лист все архивы должны посмотреть как когда completed.
class= " lastRow
>Attachments " имени " class= class= " значение "
>

class= " fileInfo "
title= " " filename class= " Test-Constraints.xlsx (44 KB)  яваскрипт " href= " " attachmentDetails class= (тип архива детали)  
class= " описание "
Образец File
class=
>
class=

Ответ : Листы зернокомбайна в Workbook


Я дорабатывал мое Кодего от http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Excel/A_2804-Code-to-compile-all-worksheets-from-either-a-all-Excel-workbooks-in-a-folder-or-b-a-specific-Excel-workbook.html

Pls бежит это Кодий от отдельно архива, просматривает как спрошено к вашему закрытому архиву Test_Constraints и бежит

Приветственные восклицания

Дэйв
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
Общественное Sub ConsolidateSheets ()
    Тусклое Wb1 как Workbook
    Тусклое Wb2 как Workbook
    Тусклое ws1 как рабочий лист
    Тусклое ws2 как рабочий лист
    Тусклое ws3 как рабочий лист
    Тусклое rng1 как ряд
    Тусклое rng2 как ряд
    Тусклое rng3 как ряд
    Тусклое rngArea как ряд
    Тусклое lrowSpace как длиной
    Тусклое lSht как длиной
    Тусклое lngCalc как длиной
    Тусклое lngRow как длиной
    Тусклое lngCol как длиной
    Тусклый x ()
    Тусклое bProcessFolder как булевско
    Тусклое bNewSheet как булевско

    Тусклое StrPrefix
    Тусклое strFileName как шнур
    Тусклое strFolderName как шнур

    'различному необходимо было нужно для предмета раковины использовать директорию невыполнения обязательства
    Тусклое strDefaultFolder как вариант


    bProcessFolder = Application.InputBox («обрабатывайте одиночный скоросшиватель (ПОИСТИНЕ),» & vbNewLine & «или одиночный архив (ЛОЖНЫЙ)», «объем применения: Скоросшиватель или одиночный архив», «True», 4)
    bNewSheet = Application.InputBox («извлеките все данные к одиночному листу (ПОИСТИНЕ),» & vbNewLine & «или листу архива цели для каждого листа источника (ЛОЖНОГО)», «форма выхода: Одиночный лист или лист собранием листа», «True», 4)
    Если не bProcessFolder после этого
        Если не bNewSheet после этого
            MsgBox «там не будет много пунктом создавая точно реплику вашего архива источника:)»
            Выходите подводная лодка
        Закончитесь если
    Закончитесь если

    'установите директорию невыполнения обязательства здесь если нужно
    strDefaultFolder = «C:\temp»

    'Если потребитель collating все листы к одиночному листу цели после этого дистанционирование рядка
    'различить между по-разному листами можно установить здесь
    lrowSpace = 0

    Если bProcessFolder после этого
        strFolderName = BrowseForFolder (strDefaultFolder)
        'Ищите xls, xlsx, архивы xlsm
        strFileName = Dir (strFolderName & «\ *.xls*")
    Еще
        strFileName = _ применения
                      .GetOpenFilename («отборный архив, котор нужно обрабатывать (*.xls), *.xls»)
    Закончитесь если

    Установите Wb1 = Workbooks.Add (1)
    Установите ws1 = Wb1.Sheets (1)
    Если не bNewSheet после этого ws1.Range, то («A1: B1») = блок («имя workbook», «отсчет рабочий лист»)

    'Поверните screenupdating, случаи, сигналы тревога и вычисление комплекта к руководству
    С применением
        .DisplayAlerts = ложно
        .EnableEvents = ложно
        .ScreenUpdating = ложно
        lngCalc =. Вычисление
        . Вычисление = xlCalculationManual
    Конец с

    'установите курс вне петли
    StrPrefix = strFolderName & IIf (bProcessFolder, «\», vbNullString)

    Сделайте пока Len (strFileName) > 0
        'Снабдите состояние прогресса потребитель
        Application.StatusBar = вышло («обрабатывать» & strFolderName & «\» & strFileName, 255)
        'Раскройте каждый workbook в скоросшивателе интереса
        Установите Wb2 = Workbooks.Open (StrPrefix & strFileName)
        Если не bNewSheet после этого
            'добавьте общие детали к первому листу
            ws1.Cells (Rows.Count, «a»). Конец (xlUp). Смещение (1, 0) = Wb2.Name
            ws1.Cells (Rows.Count, «a»). Конец (xlUp). Смещение (0, 1) = Wb2.Sheets.Count
        Закончитесь если
        Для каждого ws2 в Wb2.Sheets
            Если bNewSheet после этого
                'Все данные к одиночному листу
                'Прыгните импортирующ данные по листа цели если лист источника пуст
                Установите rng2 = ws2.Cells.Find («*», ws2. [a1], xlValues, xlByRows, xlPrevious)

                Если не rng2 ничего после этого
                    Установите rng1 = ws1.Cells.Find («*», ws1. [a1], xlValues, xlByRows, xlPrevious)
                    'Находите первый рядок пробела на листе цели
                    Если не rng1 ничего после этого
                        Установите rng3 = ws2.Range (ws2.UsedRange.Cells (1), ws2.Cells (rng2.Row, «a»))
                        'Обеспечьте что не будет превышена зона рядка в листе цели
                        Если rng3.Rows.Count + rng1.Row < Rows=""> 0 после этого ws1.Rows, то (rng1.Row + 1).Interior.Color = vbGreen
                    Еще
                        'лист цели будет пустым так экземпляром к первому рядку
                        ws2.UsedRange.Copy ws1.Cells (1, ws2.UsedRange.Cells (1).Column)
                    Закончитесь если
                Закончитесь если
            Еще
                'новый лист цели для каждого листа источника
                ws2.Copy поже: =Wb1.Sheets (Wb1.Sheets.Count)
                'Извлекайте все соединения в нашем листе цели
                С Wb1.Sheets (Wb1.Sheets.Count). Клетки
                    . Экземпляр
                    xlPasteValues .PasteSpecial
                Конец с
                На резюме ошибки затем
                Wb1.Sheets (Wb1.Sheets.Count). Имя = ws2.Name
                'имя листа уже существует в workbook цели
                Если Err.Number <> 0 после этого
                    'Добавьте номер к имени листа до уникально имя выведено
                    Сделайте
                        lSht = lSht + 1
                        Установите ws3 = Wb1.Sheets (ws2.Name & ««& lSht)
                    Закрепите петлеть пока не ws3 ничего
                    lSht = 0
                Закончитесь если
                На ошибке переход 0
            Закончитесь если
        Следующее ws2
        'Близко раскрынный workbook
        Wb2.Close ложное
        'Проверите ли принудить a закрепите петлеть выход если обрабатывающ одиночный архив
        Если bProcessFolder = ложно после этого выходит, то сделайте
        strFileName = Dir
    Петля

    'Извлекайте все соединения если потребитель использовал лист цели
    Если bNewSheet после этого
        С ws1.UsedRange
            . Экземпляр
            . Клетки (xlPasteValues 1).PasteSpecial
            . Клетки (1).Activate
        Конец с
    Еще
        'Форматируйте общий лист если потребитель создавал отдельно листы цели
        ws1.Activate
        ws1.Range («A1: B1»). Font.Bold = True
        ws1.Columns.AutoFit
    Закончитесь если

    С применением
        .CutCopyMode = ложно
        .DisplayAlerts = True
        .EnableEvents = True
        .ScreenUpdating = True
        . Вычисление = lngCalc
        .StatusBar = vbNullString
    Конец с
Подводная лодка конца


Функция BrowseForFolder (опционное OpenAt как вариант) как вариант
'От Puls Кен как используется в его статьей vbaexpress.com
'http://www.vbaexpress.com/kb/getarticle.php?kb_id=284

    Тусклое ShellApp как предмет
    'Создайте окно браузера архива на скоросшивателе невыполнения обязательства
    Установите ShellApp = CreateObject («Shell.Application»). _
                   BrowseForFolder (0, «пожалуйста выбирает скоросшиватель», 0, OpenAt)

    'Установите скоросшиватель к тому выбрано.  (На ошибке в случае если отменено)
    На ошибке возобновьте затем
    BrowseForFolder = ShellApp.self.Path
    На ошибке переход 0

    'Разрушьте применение раковины
    Установите ShellApp = ничего

    'Проверите для инвалидного или non-входов и пошлите к инвалидной ошибке
    'укротитель если о
    'Действительные выборы могут начать l: (где l будет письмо) или
    '\ \ (как в \ \ servername \ sharename.  Все другие инвалидны
    Выберите случай средний (BrowseForFolder, 2, 1)
    Случай = «: »
        Если о, то (BrowseForFolder, 1) = «: » После этого переход инвалидное
    Случай = «\»
        Если о, то (BrowseForFolder, 1) = «\» после этого переход инвалидное
    Случай еще
        Переход инвалидное
    Конец отборный

    Выходите функция

Инвалидно:
    'Если она была определена, то что выбор был инвалидн, установило к ложному
    BrowseForFolder = ложно
Функция конца
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us