Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2012, 10:20   #1
n1l
Пользователь
 
Регистрация: 20.01.2012
Сообщений: 12
По умолчанию неправильно работает макрос в excel

Здравствуйте!
Есть макрос который я недавно написал, но не могу понять почему он неправильно работает.
В общем задача такая проверить выделенную ячейку из одного листа на совпадения с группой ячеек из другого и вставить значение если нашлись совпадения.
неправильность работы заключается в том что макрос вообще ничего не вставляет...
PHP код:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim x&, i&
Sheets("справочник").Cells(Rows.Count2).End(xlUp).Row
0
For 3 To x
  
If Sheets("рейсы").Cells(ActiveCell.RowActiveCell.Column).Value Sheets("справочник").Cells(i2).Value Then
     Sheets
("рейсы").Cells(ActiveCell.Row 1ActiveCell.Column 1).Value Sheets("справочник").Cells(31).Value
  End 
If
Next
End Sub 
не увидел тегов к бэйсику и ставил все в пхп
Вложения
Тип файла: rar рейсы.rar (12.1 Кб, 11 просмотров)
n1l вне форума Ответить с цитированием
Старый 20.01.2012, 10:49   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
Cells(Target.Row, Target.Column)
Там ещё есть ошибки, но не системные.
Ну и ещё на время работы события отключите - чтоб лишнюю работу не делать.
И ещё - обычно отслеживают, что изменилась одна ячейка. Если больше - то Exit Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 20.01.2012 в 10:54.
Hugo121 вне форума Ответить с цитированием
Старый 20.01.2012, 10:57   #3
AKSENOV048
Пользователь
 
Аватар для AKSENOV048
 
Регистрация: 03.08.2011
Сообщений: 74
По умолчанию

не знаю правильно ли я понял.
Вложения
Тип файла: rar рейсы.rar (13.1 Кб, 12 просмотров)
AKSENOV048 вне форума Ответить с цитированием
Старый 20.01.2012, 11:59   #4
n1l
Пользователь
 
Регистрация: 20.01.2012
Сообщений: 12
По умолчанию

Цитата:
Сообщение от AKSENOV048 Посмотреть сообщение
не знаю правильно ли я понял.
Да помоему вы все правильно поняли, спасибо большое...
А можно коментарии к коду если вам не трудно, пожалуйста.
n1l вне форума Ответить с цитированием
Старый 20.01.2012, 12:01   #5
n1l
Пользователь
 
Регистрация: 20.01.2012
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Ну и ещё на время работы события отключите - чтоб лишнюю работу не делать.
я не понял смысл предложения.
n1l вне форума Ответить с цитированием
Старый 20.01.2012, 12:02   #6
n1l
Пользователь
 
Регистрация: 20.01.2012
Сообщений: 12
По умолчанию

Спасибо вам всем!
n1l вне форума Ответить с цитированием
Старый 20.01.2012, 12:14   #7
n1l
Пользователь
 
Регистрация: 20.01.2012
Сообщений: 12
По умолчанию

Только что тестировал свою задумку и понял что при копировании мой макрос только абуза...
Как сделать так что бы макрос действовал при копировании?
n1l вне форума Ответить с цитированием
Старый 20.01.2012, 12:22   #8
n1l
Пользователь
 
Регистрация: 20.01.2012
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
И ещё - обычно отслеживают, что изменилась одна ячейка. Если больше - то Exit Sub
Код:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim x&, i&
If Not Intersect(Target, ActiveSheet.UsedRange.Columns(2)) Is Nothing Then
With Sheets("справочник"): x = .Cells(Rows.Count, 2).End(xlUp).Row
    For i = 3 To x
       If Target.Value = .Cells(i, 2).Value Then Target.Offset(, -1).Value = .Cells(i, 1).Value
    Next
End With
End If
End Sub
как отследить то о чем вы говорите в таком коде?
n1l вне форума Ответить с цитированием
Старый 20.01.2012, 12:28   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim x&, i&
if target.cells.count > 1 then exit sub
...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 20.01.2012, 12:36   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Собрал в кучку
Код:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim x&, i&
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, ActiveSheet.UsedRange.Columns(2)) Is Nothing Then
Application.EnableEvents = False
With Sheets("справочник"): x = .Cells(Rows.Count, 2).End(xlUp).Row
    For i = 3 To x
       If Target.Value = .Cells(i, 2).Value Then Target.Offset(, -1).Value = .Cells(i, 1).Value
    Next
End With
Application.EnableEvents = True
End If
End Sub
Вернее лучше так:

Код:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim x&, i&
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, ActiveSheet.UsedRange.Columns(2)) Is Nothing Then

        With Sheets("справочник"): x = .Cells(Rows.Count, 2).End(xlUp).Row
            For i = 3 To x
                If Target.Value = .Cells(i, 2).Value Then
                    Application.EnableEvents = False
                    Target.Offset(, -1).Value = .Cells(i, 1).Value
                    Application.EnableEvents = True
                    Exit For
                End If
            Next
        End With

    End If
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 20.01.2012 в 12:40.
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос работает неправильно AllenJ Microsoft Office Word 0 13.04.2011 21:17
неправильно рабтает макрос Olya1985 Microsoft Office Excel 6 23.02.2011 22:20
Неправильно работает запрос Lokos БД в Delphi 7 15.12.2010 06:49
неправильно работает сортировка Brabus Помощь студентам 1 30.05.2010 14:25
Неправильно работает поиск Власов А.С. БД в Delphi 5 12.10.2009 05:59