|
|
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
Приветствую, уважаемые! Excel 2003 На данный момент, у меня копирование данных происходит так: Код: plaintext 1. 2. 3. 4. 5. 6. Но начальник требует, чтобы данные хранились в отдельной книге .xls. Так вот у меня возникают вопросы: 1. Как сделать копирование данных (строки с активной ячейкой), в другую книгу? 2. Должна ли эта книга быть открыта или необязательно, данные сами попадут на нужный лист, в конец списка, этой другой книги и сохранятся? 3. Или какие есть аргументы, чтобы скопированные данные, не хранить в другой книге? Извиняюсь, что много вопросов. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2011, 14:51 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
1. thisworkbook.worksheet.cells(1,1) = workbook("111").worksheet.cells(1,1) 2. да, должна быть (указанным в п.1 методом), если не использовать ADO. workbook.open workbook.close true 3. вопрос в том, на.. это надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2011, 15:15 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
На счет второго Книга может быть закрытой и при воспроизведения макроса в "базу" (в закрытую книгу) данные можно впихнуть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2011, 23:57 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
посмотри код Base -закрытая книга Wor_book - рабочая книга Worksheets(1).Range("A1:F10").Value - лист 1, диапазон от A1 до F10 авторSub Save_Base () iFileName$ = "C:\Base.xls" If Dir(iFileName$) <> "" Then With Application .ScreenUpdating = False With .Workbooks.Open(Filename:=iFileName$) .Worksheets(1).Range("A1:F10").Value = Workbooks("[color=redWork_book.xls").Worksheets(1).Range("A1:F10").Value .Close saveChanges:=True End With .ScreenUpdating = True End With Else MsgBox "Спасибо что вы воспользовались услугами Аэрофлота", , _ "Русские авиалинии !!!" End If End Sub :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2011, 00:04 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
упс Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2011, 00:05 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
о зараннее создай на C:\ книгу с именем Base.xls ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2011, 00:07 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
лучше на диск D. На С под Виндовс 7 не сработал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2011, 00:11 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
Лучше использовать GetObject. Меньше вопросов, если книга уже открыта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2011, 12:25 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
Сергей, а как определить, открыта книга уже или нет перед использованием GetObject? Перебором и проверкой всех книг, или есть путь проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2011, 15:31 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
Hugo121, Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2011, 17:10 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
Не уверен в нужности GetObject: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2011, 17:18 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
KL (XL), а если "MyBook.xls" не та "MyBook.xls"? Хотя в таком случае ту тоже открыть не удастся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2011, 17:24 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
В этом случае тоже при открытом файле D:\Base.xls код этого не поймёт... Тогда может так, хоть известить? Закрыть нельзя... If x Is Nothing Then Set x = Workbooks.Open(strfull$) Else If x.FullName <> strfull$ Then MsgBox "Close duplicate!!!" End If ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2011, 17:34 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
Hugo121Сергей, а как определить, открыта книга уже или нет перед использованием GetObject? Перебором и проверкой всех книг, или есть путь проще? Function WorkbooklsOpen(wbname) As Boolean 'Возвращает ИСТИНА, если рабочая книга открыта Dim x As Workbook On Error Resume Next Set x = Workbooks(wbname) WorkbooklsOpen = (Err = 0) End Function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2011, 23:26 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
kuklp, Это я знаю... Но так 1 не быстро 2 опять тоже самое - это может быть не та книга... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2011, 00:06 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
Хотя я не прав - довольно быстро... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2011, 00:09 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
Hugo121Сергей, а как определить, открыта книга уже или нет перед использованием GetObject? Перебором и проверкой всех книг, или есть путь проще?Вообще, зачем определять открыта ли она? Getobject получит ее в любом случае. Другое дело опрекделить есть ли такая книга по заданному пути: Function FileExists(FName) As Boolean ' Возвращает ИСТИНА, если файл существует FileExists = (Dir(FName) <> "") End Function И никаких других проверок не надо, Экс сам ругнется если книга с таким именем уже открыта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2011, 07:37 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
Ser Arturупс Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ругается здесь. да и еще, мне надо, чтобы копирповалась именно та строка в которой активная ячейка. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2011, 17:54 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
НеПрофессионал, Какими словами ругается? Матерными? :) Скорее всего у вас в шапке модуля стоит Option Explicit, а значит переменную нужно эксплицитно декларировать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2011, 18:36 |
|
||
|
Копирование данных
|
|||
|---|---|---|---|
|
#18+
KL (XL), неа, не стоит :) А как сделать чтобы добавилась (скопировалась) вся строка с активной ячейкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2011, 18:49 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37324464&tid=2176739]: |
0ms |
get settings: |
4ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
156ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 207ms |
| total: | 470ms |

| 0 / 0 |
