|
|
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Народ, нужен ваш хелп! Из найденных здесь примеров попытался написать собственный макрос, который копировал бы все книги (по одному листу в каждой) в одну. Но пока не смог скопировать дынные даже из одного файла. Понимаю, что где-то написал полную хрень... первый раз пишу макрос. Помогие доработать эту процедуру, чтобы копировались данные хотя бы из одного файла. Вот что у меня получилось. Sub CollectInfo() Dim iTempFileName As String 'имя поочерёдно открываемого файла Dim WBmacros As Workbook 'Файл для вставки данных (файл с этим макросом) Dim rgTarget As Range 'Ячека для вставки скопированных данных Const DirLoc As String = "C:\Обработка филиалов СИА\" iTempFileName = Dir(DirLoc & "*.xls") Set OriWB = Workbooks.Open(Filename:=DirLoc & iTempFileName, ReadOnly:=True) OriWB = Range("A1").CurrentRegion Set WBmacros = ThisWorkbook.Worksheets("Все филиалы").Range("A1").CurrentRegion 'сводка по филиалам Set rgTarget = WBmacros.Resize(1, 1).Offset(WBmacros.Rows.Counts) OriWB.Copy rgTarget End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 12:09:19 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
копируем 1-й лист из книг данные столбцов с A по H, адреса которых указаны в listbox. вставляются только значения без формул и форматирования. Вставка производится в новую книгу Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код особо не проверял, так что мож и не работать. Это в качестве образца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 12:50:16 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
а .. забыл .. нада еще вставку листов сделать в цилке, а то они могу кончится. и еще книги нада закрывать при окончании каждой итерции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 12:52:18 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Переберать все книги мне пока не требуется. Скопировать-бы данные из той одной, которая открывается. Вставка листов не нужна. У меня все данные копируются на один единственный лист в файл с этим макросом. Может кто знает, что надо исправить в моем макросе, чтобы он заработал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 13:24:31 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 13:29:51 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
если нада ошибки, то: Код: plaintext нет функции Paste. после копирования вставить нада не забыть) Желательно объявить переменную OriWB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 13:55:54 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
вот так работает. Кнопка, нажатие которой обрабатывается, находится на листе, в который данные скопируются Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 14:08:17 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Korcar, спасибо! OriWB = Range("A1").CurrentRegion Этим хотел выделить весь диапазон в открывшемся файле) Диапазон определю сам)) Единственное, макрос подвисает на этой записи: OriWB.Worksheets("Лист 1").Range("A1:P73").Select Пробавал указать название листа открываемого файла, но ничего не вышло, все равно "ран тайм эрор". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 10:18:59 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Юрий08, Во-первых, Set OriWB = Range("A1").CurrentRegion так как вы работаете с объектной переменной Но OriWB это workbook, а вы передаете ему Range. Проверьте это. OriWB.Worksheets("Лист 1") Проверьте, что у вас корректно сформировался объект OriWB и в коллекции worksheets есть Лист 1. Также попробуйте OriWB.Worksheets(1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 11:07:39 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Юрий08 Единственное, макрос подвисает на этой записи: OriWB.Worksheets("Лист 1").Range("A1:P73").Select Пробавал указать название листа открываемого файла, но ничего не вышло, все равно "ран тайм эрор". эм ... не знаю в чем дело, еще раз проверил код, все работает, единственный момент "Лист 1" без пробела пишется (это если использовать название листа, создаваемое экселем по умолчанию) ну, как бы подробности ошибки то напишите, а то эроры разные бывают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 07:33:44 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Понял в чем была ошибка. А если название листов всегда разное! Как тогда быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 17:08:09 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Юрий08, что за ошибка ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 17:25:26 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Разобрался с разными названиями листов открыемых книг. Пусть криво, зато работает)) Объясните, плиз, как сделать, чтобы выделялся весь диапазод (CurrentRegion), а не ("A1:P73") Sub CollectInfo() Dim iTempFileName As String 'имя поочерёдно открываемого файла Dim OriWB As Workbook 'оригинальный файл Dim rgFil As Range 'копируемый диапазон в открывшемся файле Const DirLoc As String = "C:\Обработка филиалов СИА\" iTempFileName = Dir(DirLoc & "*.xls") Set OriWB = Workbooks.Open(Filename:=DirLoc & iTempFileName, ReadOnly:=True) Dim shtX As Worksheet 'переменная для листа For Each shtX In OriWB.Worksheets OriWB.Worksheets("Лист 1").Range("A1:P73").Select Next shtX End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 17:51:43 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
big-duke, это был мой ответ на твой вопрос) Проблема была в том, что имя листа открываемой книги каждый раз разное. А в макросе он должен был называться "Лист 1". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 18:03:05 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
То же мне, объяснил))))) Что это такое, с чем его едят и куда этот worksheets(1) запихнуть?)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 18:09:06 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Куда его следует запихнуть - понял))) А как теперь выделить весь диапазон? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 18:11:34 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Юрий08, понятия не имею как его выделить. Что такое диапазон CurrentRegion ? Имя ? range("currentregion").Select ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 20:06:05 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
для определения и выделения диапазона данных: Код: plaintext 1. 2. 3. 4. 5. 6. 7. P.S. а можно номера строки и столбца не читать, а запомнить последнюю ячейку в переменной типа object ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 06:36:12 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
big-duke CurrentRegion - это аналог комбинации Ctrl+A (выделение неприрывного диапазона) Set rgCountry = shtX.Range("A1").CurrentRegion - эта команда должна выделять весь диапазон (во всяком случае мне так объясняли Set rgCountry = rgCountry.Offset(1).Resize(rgCountry.Rows.Count -1) 'а это выделение всего диапазона без заголовка. Понятно, что в моем случае переменные другие, но смысл такой. Но что-то нифига у меня не получается так сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 10:09:39 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
big-duke Не "Ctrl+A"!!! Ctrl+* -это и есть CurrentRegion ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 10:15:18 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Всё, наконец понял, как выделить весь диапазон!!! Вот как это будет выглядеть в моем случае. OriWB.Worksheets(1).Range("A1").CurrentRegion.Select ' выделяется непрерывный диапазон ячеек Всем большое спасибо за помощь и идеи по работе макроса. Буду еще обращаться:)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 10:21:03 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
верите, нет, но Ctrl+* - никакой реакции.... и никаких действий Excel не производит) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 11:11:01 |
|
||
|
Не работает макрос
|
|||
|---|---|---|---|
|
#18+
Korcar Не может быть! "*" на цифровой клавиатуре жмешь? 100% Ctrl* На эту комбинацию никакой макрос, или что другое не вешал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 11:30:33 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=35821666&tid=2179797]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
185ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 481ms |

| 0 / 0 |
