Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как сравнить и скопировать ячейки в excel из разных книг?

14K
17 июля 2006 года
cybereyg
18 / / 17.07.2006
Необходимо сравнить ячейки столбца (допустим столбец 1) в excel из одной книги (книга 1) с другой (книга 2) и при совпадении значений скопировать из книги 2 в книгу 1 рядом стоящую ячейку в строке. Заранее спасибо!
15K
17 июля 2006 года
vkodor
41 / / 04.07.2006
Если книги открыты, то можно например так:
Код:
Dim rng As Range
    i = 1
    Do While Workbooks("Книга1.xls").Worksheets(1).Cells(i, 1) <> ""
        Set rng = Workbooks("Книга2.xls").Worksheets(1).Range("A:A").Find( _
                What:=Workbooks("Книга1.xls").Worksheets(1).Cells(i, 1), _
                LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, MatchCase:=True)
        If Not rng Is Nothing Then _
            Workbooks("Книга1.xls").Worksheets(1).Cells(i, 2) = rng.Offset(0, 1)
        Set rng = Nothing
        i = i + 1
    Loop
7.1K
17 июля 2006 года
Urfen_Djus
61 / / 30.06.2006
А при закрытой книге, открыть книгу можно так(необходимо использовать полный путь к книге):
 
Код:
Workbooks.Open "C:\Documents and Settings\AllUser\Рабочий стол\Книга1.xls"
14K
18 июля 2006 года
cybereyg
18 / / 17.07.2006
попробовал код в том виде как написано, что-то не получается, может я что то неправильно делаю? можно сделать коментарий к каждой строчке или к тем которые надо изменять под себя, может тогда веселее дело пойдет?!
7.1K
18 июля 2006 года
Urfen_Djus
61 / / 30.06.2006
Как хоть ругается!!!Ты имена своих книг вставлял?посмотри...
14K
20 июля 2006 года
cybereyg
18 / / 17.07.2006
[QUOTE=Urfen_Djus]Как хоть ругается!!!Ты имена своих книг вставлял?посмотри...[/QUOTE]
спасибо, все заработало! Но почему то ячейки содержащие html код не копируются, или копируются по частям (часть ячейки), с чем эти это может быть связано?

ячейка может иметь такой вид:
-------
<table border=0"> <tbody> <tr> <td>Заголовок</td> <td>описание</td> </tr> <tr> <td valign="middle" colspan="2" height="5"><img height="1" src="http://www.***.ru/pics/common/tree_line.gif" width="100%" alt="" /></td> </tr> <tr> <td>текст</td> <td>txt
------
7.1K
20 июля 2006 года
Urfen_Djus
61 / / 30.06.2006
Попробуй:
 
Код:
Windows("Книга1.xls").Activate
    Workbooks("Книга1.xls").Worksheets("Лист1").Range("А1").Copy 'Копирует ячейку Книги1
    Workbooks("Книга2.xls").Sheets(1).Cells(1,1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False 'Специальная вставка в ячейку Книги2
    Application.CutCopyMode = False
15K
20 июля 2006 года
vkodor
41 / / 04.07.2006
[QUOTE=cybereyg]спасибо, все заработало! Но почему то ячейки содержащие html код не копируются, или копируются по частям (часть ячейки), с чем эти это может быть связано?

ячейка может иметь такой вид:
-------
<table border=0"> <tbody> <tr> <td>Заголовок</td> <td>описание</td> </tr> <tr> <td valign="middle" colspan="2" height="5"><img height="1" src="http://www.***.ru/pics/common/tree_line.gif" width="100%" alt="" /></td> </tr> <tr> <td>текст</td> <td>txt
------[/QUOTE]

замени
 
Код:
Workbooks("Книга1.xls").Worksheets(1).Cells(i, 2) = rng.Offset(0, 1)

на
 
Код:
Workbooks("Книга1.xls").Worksheets(1).Cells(i, 2).Value = rng.Offset(0, 1).Value

скорей всего в первом варианте больше 255 символов обрезалось
7.1K
20 июля 2006 года
Urfen_Djus
61 / / 30.06.2006
vkodor А где в твоем коде идет копирование???
14K
20 июля 2006 года
cybereyg
18 / / 17.07.2006
[QUOTE=vkodor]замени
 
Код:
Workbooks("Книга1.xls").Worksheets(1).Cells(i, 2) = rng.Offset(0, 1)

на
 
Код:
Workbooks("Книга1.xls").Worksheets(1).Cells(i, 2).Value = rng.Offset(0, 1).Value

скорей всего в первом варианте больше 255 символов обрезалось[/QUOTE]
все равно та же ошибка: application-defined or object-defined error
14K
23 июля 2006 года
cybereyg
18 / / 17.07.2006
после установки Excel 2003 все заработало
20K
31 июля 2006 года
kripanton
1 / / 31.07.2006
Случайно увидел вышепреведенный код и успешно приспособил под свои нужды. Единственное но - не могу выловить одно исключение - когда в Книге2 нет такого значения, которое берется из Книги1, то вылетает ошибка Object variable or With block variable not set и стопается на строчке

Workbooks("ipo.xls").Worksheets(1).Cells(i, 2) = rng.Offset(0, 2)

Какие варианты?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог