|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.09.2010, 18:16 | #1 |
Новичок
Джуниор
Регистрация: 05.09.2010
Сообщений: 4
|
Как подставить значение буфера обмена в функцию Cells.Find?
Извиняюсь за вопрос от чайника, но всё-же ...
Мне нужно скопировать значение ячейки на одном листе, перейти на другой лист, запустить функцию поиска по листу со значением из буфера обмена. Я запустил запись макроса, в принципе всё, как надо, НО: я вижу, что в коде, в качестве строки поиска, стоит строка из примера - email@email.com Как сделать так, чтобы в качестве аргумента подставлялось значение из буфера обмена? Кусок кода ниже: ActiveCell.Offset(1, -7).Range("A1").Select Selection.Copy Sheets("database").Select Range("A1").Select Cells.Find(What:="email@emai.com", After:=ActiveCell, LookIn:= _ xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False, SearchFormat:=False).Activate Заранее спасибо за ответы. |
05.09.2010, 19:01 | #2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Попробуйте так
Код:
Анализ,обработка данных Недорого
|
05.09.2010, 19:09 | #3 |
Участник клуба
Регистрация: 17.07.2009
Сообщений: 1,088
|
А зачем из буфера? Может лучше сразу из ячейки брать? Я думаю, Вы копируете-то все равно значение из ячейки...
Код:
Можно брать из ячейки неполное значение: Код:
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru |
05.09.2010, 19:15 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
doober забыл добавить, что для работы этой фишки надо подключить Microsoft Forms 2.0 Object Library
webmoney: E265281470651 Z422237915069 R418926282008
|
05.09.2010, 19:21 | #5 | |
Новичок
Джуниор
Регистрация: 05.09.2010
Сообщений: 4
|
Цитата:
На всякий случай - у меня стоит достаточно простая задача. Мне нужно в маленькую базу данных дописать номер сотрудника из большой (полной) базы данных. Задача разовая, так что, может нет смысла что-то дополнительное инсталлировать? |
|
05.09.2010, 19:23 | #6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Подключить - самое простое: добавить в проект форму, а затем её удалить.
Но вообще я бы тоже не городил буфера и селекты - намного проще сделать типа так: Sub tt() x = ActiveCell.Offset(1, -7) Sheets("database").Select Sheets("database").Cells.Find(What: =x, After:=ActiveCell, LookIn:= _ xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False).Activate End Sub
webmoney: E265281470651 Z422237915069 R418926282008
|
05.09.2010, 19:29 | #7 | |
Новичок
Джуниор
Регистрация: 05.09.2010
Сообщений: 4
|
Цитата:
Dim O_Data As New DataObject Dim membermail As String ActiveCell.Offset(1, -7).Range("A1").Select O_Data.GetFromClipboard membermail = O_Data.GetText(1) Sheets("database").Select Range("A1").Select Cells.Find(What:=membermail, After:=ActiveCell, LookIn:= _ xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False, SearchFormat:=False).Activate ================ Но выполнение макроса обрывается ошибкой: Compile error User defined type not defined |
|
05.09.2010, 19:38 | #8 | |
Новичок
Джуниор
Регистрация: 05.09.2010
Сообщений: 4
|
Цитата:
Заработала вот такая конструкция: Sub abc() x = ActiveCell.Offset(1, -7) Sheets("database").Select Sheets("database").Cells.Find(What: =x, After:=ActiveCell, LookIn:= _ xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False).Activate ActiveCell.Offset(0, 7).Range("A1").Select Application.CutCopyMode = False Selection.Copy Sheets("update").Select ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Paste End Sub =============== Теперь только нужно организовать цикл (до тех пор, пока значение переменной x не будет равно "пусто") и дело в шляпе! Пойду читать инструкцию ... Ещё раз спасибо! |
|
05.09.2010, 19:38 | #9 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Честно пытася победить Ваш код с селектами - не вышло
Так зато работает, без всяких буферов: Код:
webmoney: E265281470651 Z422237915069 R418926282008
|
05.09.2010, 19:41 | #10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Что-то у Вас слишком сложно, я даже так сразу всю конструкцию не пойму... Наверняка можно проще и быстрее без селектов сделать...
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 05.09.2010 в 20:00. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти значение на другом листе и подставить значение следующей ячейки | ElenaNTro | Microsoft Office Excel | 12 | 11.02.2019 12:44 |
очистка буфера обмена | beegl | Общие вопросы Delphi | 21 | 04.01.2017 11:01 |
Как узнать что в содержимое буфера обмена добавилось что либо? | zotox | Общие вопросы Delphi | 2 | 15.09.2009 12:07 |
Контроль буфера обмена | AndrzejX | Общие вопросы Delphi | 8 | 20.02.2009 07:30 |