Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 20
1

Автоматически не запускает макросы ориентированные на ячейки

13.05.2014, 12:10. Показов 2161. Ответов 35
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день !
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2014, 12:10
Ответы с готовыми решениями:

Хром автоматически запускает рекламу каждые несколько минут
Добрый день. Подхватил недавно рекламный вирус, когда ставил FB2 ридер. Он установил мне полный...

Макросы и объединенные ячейки
Помогите пожалуйста Итак есть обычная табличка. Шапка у нее для примера такая: А1:А2 -...

при включении компьютера у меня автоматически запускает firefox и переходит на эту страницу nftds3.ru
здрасте.у меня проблем,при включении компьютера у меня автоматически запускает firefox и переходит...

Cоздать макрос: при выполнении условия в ячейке автоматически выполнить другие именованные макросы
Помогите написать макрос который при выполнении условия в отдельно взятой ячейке автоматически...

35
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 20
13.05.2014, 17:11  [ТС] 21
Author24 — интернет-сервис помощи студентам
Hugo121, А скажите пожалуйста, а чем отличается Worksheet от General а также соседние выбираемые наименования (их там в разы больше ???
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
13.05.2014, 17:16 22
Цитата Сообщение от Макс Д Посмотреть сообщение
соседние выбираемые наименования
это разные события листа (ну или книги - смотря где смотрите)
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 20
13.05.2014, 17:19  [ТС] 23
Hugo121, А они принципиальны при написании той или иной программы ???
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
13.05.2014, 17:25 24
Да!
Ну как - смотря какое событие хотите отслеживать - если событие изменения ячейки, то принципиально нужно использовать макрос Worksheet_Change(), хотя можно и Workbook_SheetChange() - но он уже нужен когда отслеживаете не один лист.
В общем, всё зависит от задачи.
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 20
13.05.2014, 17:34  [ТС] 25
А вот не знаете ??? Где подробный перечень найти данных нюансов
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
13.05.2014, 17:37 26
Вероятно где-то на MSDN
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 20
13.05.2014, 17:49  [ТС] 27
Кстати, а вы С# знаете ??? Я вначале его начал изучать...Элементарное понять можно, а вот чем сложнее, тем понял, что без знатоков языка самому сложнее...Вот и переключился на VBA более понятливый
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
13.05.2014, 18:00 28
Нет, мне С# в работе не нужен, не изучал.
Ну разве что если писать какие-нибудь свои dll для подключения к макросам - но думаю это излишнее усложнение, это если "шифроваться" сильно охота...
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 20
13.05.2014, 19:34  [ТС] 29
А я лично для себя изучаю...я сам маркетолог
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 20
10.06.2014, 16:11  [ТС] 30
Hugo121, Добрый день !
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
10.06.2014, 16:39 31
Тупо влоб:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Dim x, y
 
Private Sub Worksheet_Activate()
    x = [A1].Value
    y = [D10].Value
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count = 1 Then
 
        If Target = [A1] Then
            Application.EnableEvents = False
            x = x + Target.Value
            Target.Value = x
            Application.EnableEvents = True
        End If
 
        If Target = [D10] Then
            Application.EnableEvents = False
            y = y + Target.Value
            Target.Value = y
            Application.EnableEvents = True
        End If
 
    End If
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count = 1 Then
        If Target = [A1] Then x = Target.Value
        If Target = [D10] Then y = Target.Value
    End If
End Sub
Если ячейки соседние - можно использовать массив.
Если не смежные - тоже можно массив, но "тупым" способом командовать проще.
1
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 20
10.06.2014, 16:45  [ТС] 32
Спасибо большое...Я правда примерно так и думал. Но рассчитывал, что можно как-то короче, поскольку я чеек достаточно много...
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
10.06.2014, 16:49 33
Сделайте пример файла, покажите какие ячейки - тогда можно обсуждать задачу.
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 20
10.06.2014, 17:07  [ТС] 34
с D2-O2 (все ячейки включительно)
D4-O4 (все ячейки включительно)
D6-O6 (все ячейки включительно)
и так далее через строку
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
10.06.2014, 17:38 35
Такой вариант для начала:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range, x
    If Target.Cells.Count = 1 Then
        Set r = [d2:o6]
        If Not Intersect(Target, r) Is Nothing Then
            If Target.Row Mod 2 = 0 Then
                Application.EnableEvents = False
                x = Target
                Application.Undo
                Target = Target + x
                Application.EnableEvents = True
            End If
        End If
    End If
End Sub
"и так далее через строку" не учитывал, т.к нет конкретики.
Удалить ячейки по одной нельзя. Можно кучей, ну или вычесть.
1
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 20
10.06.2014, 17:50  [ТС] 36
СПАСИБО БОЛЬШОЕ
0
10.06.2014, 17:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2014, 17:50
Помогаю со студенческими работами здесь

автоматически заполнять ячейки
Подскажите как быть, есть два листа, на одном форма на втором справочник, макросом сделать что при...

Автоматически заполнить ячейки массива символами от А до Z
Автоматически заполнить ячейки массива символами от А до Z. В рандомном порядке воспроизвести...

как автоматически изменить название ячейки?
У меня вопрос. Как мне сделать так, чтобы названия ячеек менять автоматически, например, в ячейке...

Разложение слова в ячейки по буквам автоматически
Возможно ли сделать так, чтобы при заполнении Ф.И.О. на Лист1 (Иванов Пётр Сергеевич) автоматом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru