|
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
|
|
Обратная связь с формой из ячейки в Excel17.05.2011, 00:03. Показов 7758. Ответов 28
Метки нет (Все метки)
Люди добрые помогите, немогу решить проблему: нужно чтобы при двойном щелчке на ячейке вызывалась какая либо форма, если конкретно то мне нужна процидура на уровне листа как для кнопки но только вместо объекта 'кнопка' использовать объект ячейка.
Для примера вот код который я хотел бы разместить sub range('A1')_DblClick() ... end sub но насколько я знаю такую процедуру написать нельзя, хотя конечно я могу ошибаться. Можно конечно создать гиперссылку, но мне не подходит данный вариант. roman.2001.GOR@rambler.ru Зарание благодарен
0
|
|
| 17.05.2011, 00:03 | |
|
Ответы с готовыми решениями:
28
Связь ячейки Excel с doc-файлом Организовать связь элемента checkbox (флажок) и ячейки в excel Изменения формата ячейки Excel средствами VBA в зависимости от значения другой ячейки |
|
fess
|
||||||
| 17.05.2011, 04:19 | ||||||
|
в окне VBA для нужного тебе листа создай процедуру типа
|
||||||
|
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
|
|
| 17.05.2011, 21:25 [ТС] | |
|
всебы хорошо, но как указать конкретную ячейку, чтобы можно было щелкать не на любой ячейке а на конкретной, или даже на нескольких объединеных ячейках и вызывать форму незнаю точно что значит Target но из html помню что так в теге ссылки '<a>' указывалось имя окна, а as Excel.Range стало быть значит что в виде ссылки обозначается любая ячейка листа но вот как указать конкретную ячейку
0
|
|
|
Терминатор
|
||||||
| 17.05.2011, 22:26 | ||||||
|
Зайди в VBA, кликни на том листе на котором тебе надо, и просто скопируй и вставь этот код.
Затем проверь как работает, кликнув на А1
|
||||||
|
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
|
||||||||||||||||
| 18.05.2011, 02:33 [ТС] | ||||||||||||||||
|
Не надо острить я только-только начал изучать vba, но всеравно огромное приогромное спасибо.
в связи с написаным выше следующий вопрос А если вместо адреса $A$1 мне необходимо использовать использовать cells(1,1) а если быть точнее то даже (это к примеру) range (cells(1,1),cells(1,2))кроме того, указанный метод '_SelectionChange' не подходит, больше подходит метод '_BeforeDoubleClick' тобиш процедура должна выглядеть так:
хочу поставить задачу более наглядным способом: в общем идея следующая: вариант №1 - програмно я определил диапозон смежных ячеек допустим А1:В1 для этого диапозона определяется общий фон, рамка и т.д. в первую ячейку диапозона вноситься некая запись затем к примеру производи выше перечисленые действия для диапозона В2:С2 но запись вносится уже другая, нужно чтобы при двойном щелчке на любой из ячеек 1-го или 2-го диапозона вызывалась некая форма, при этом запись из первой ячейке диапозона или отсутствие таковой определяла какие данные заносятся в форму. По идее процедура
вариант №2 - просто навсего объеденить ячейки одной группы в однутогда не надо будет заморачиваться с принадлежностью или не принадлежностью смежных ячеек к группе
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
|
|
| 18.05.2011, 02:47 [ТС] | |
|
в общем люди простите за гон разведеный чуть выше, просто я сам заморочился так, что не увидел очевидного, первый вариан кода подходит достаточно идеально
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) МояФорма.Show End Sub осталась лишь маленькая проблемка как внести данные данные из только что дважды щелкнутой ячеки или объединеных ячеек в переменную, т.е. узнать значение ячейки (объеденёных ячеек) по которой я только что щелкнул два раза, при этом не задавая в процедуре адрес ячейки (ячеек)
0
|
|
|
fess
|
||||||
| 18.05.2011, 03:42 | ||||||
|
||||||
|
fess
|
||||||
| 18.05.2011, 07:04 | ||||||
|
во натупил!!! :-)))
|
||||||
|
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
|
|
| 18.05.2011, 14:57 [ТС] | |
|
огромное человеческое спасибо!!! :-)
0
|
|
|
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 22.05.2011, 03:20 | |
|
Роман,
У события BeforeDoubleClick() есть аргумент Target. Так что Вы можете воспользоваться им для решения Вашей задачи и не мучить лишний раз ActiveCell. Для получения значения находящегося в ячейке достаточно : iTargetValue = Target.Value Если ячейки об'единённые, то : iTargetValue = Target.Item(1).Value P.S. Не забудьте об'явить переменную iTargetValue как Global
0
|
|
|
fess
|
|
| 22.05.2011, 03:25 | |
|
2Pashulka
Можно и так. Никаких проблем. Просто насколько понял ActiveCell даже в объединенной ячейке выдаст значение без ошибки. Я решил, что через ActiveCell будет проще. |
|
|
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 22.05.2011, 03:39 | |
|
А что это строка выдаст ошибку ???
iTargetValue = Target.Item(1).Value P.S. никто не мешает использовать только этот вариант.
0
|
|
|
fess
|
|
| 22.05.2011, 03:49 | |
|
:-)
нет не выдаст. каждый вариант имее право на жизнь. |
|
|
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 22.05.2011, 04:06 | |
|
Если каждый вариант имеет право на жизнь, то зачем Вы исправили свой самый первый вариант ???
0
|
|
|
fess
|
|
| 22.05.2011, 04:15 | |
|
я написал почему.
|
|
|
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 22.05.2011, 04:22 | |
|
Тогда Вы противоречите сами себе, если любой вариант имеет право на жизнь, то ничего исправлять и совершенствовать не нужно ... и так сойдет.
0
|
|
|
fess
|
|
| 23.05.2011, 04:09 | |
|
'если любой вариант имеет право на жизнь, то ничего исправлять и совершенствовать не нужно'
не вижу логики. |
|
|
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 23.05.2011, 06:19 | |
|
- Ты суслика видишь?
- Нет. - И я Нет. А он есть. - Понял... (Цитата к/ф ДМБ)
0
|
|
|
fess
|
|
| 23.05.2011, 06:24 | |
|
5 баллов!
закрыли тему |
|
|
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
|
|
| 08.07.2011, 07:15 [ТС] | |
|
не знаю увидят мой ответ или нет, но выскажусь, любезный fess есливы внимательно читали всю тему то понили бы вариант с активной ячейкой полдходит как нельзя лучше, чем target , потому что нужно определить зарание объедены ли ячейки или нет, а я зарание не могу знать (точней не я а программа) объеденены ли ячейки, ваш вариант тоже интересен, но не в моем конкретном случае :-)
0
|
|
| 08.07.2011, 07:15 | |
|
Помогаю со студенческими работами здесь
20
Обратная связь Обратная связь
Обратная связь Обратная связь C# Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|