|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.05.2009, 15:42 | #11 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
Примерно так:
Sub Worksheet_Activate() i = 1 Do While Cells(i, 1) <> "" If Sheets("Лист1").Cells(i, 1).Value <> Sheets("Лист2").Cells(i, 1).Value Then GoTo 10 Sheets("Лист1").Cells(i, 3) = Val(Sheets("Лист1").Cells(i, 2)) - Val(Sheets("Лист2").Cells(i, 2)) 10 i = i + 1 Loop End Sub |
16.05.2009, 16:03 | #12 |
Пользователь
Регистрация: 12.05.2009
Сообщений: 18
|
данный код не работает
|
16.05.2009, 16:11 | #13 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
Проверьте, у меня работает без проблем.
|
16.05.2009, 16:15 | #14 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Вот так тоже будет работать:
Код:
|
18.05.2009, 17:20 | #15 |
Пользователь
Регистрация: 12.05.2009
Сообщений: 18
|
вроде бы все делаю так же,а ошибку найти не могу ( посмотрите пожалуйста
|
18.05.2009, 17:43 | #16 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Странный у Вас какой-то файл...
Я заменил Ваш макрос на более простой: Код:
(у меня Excel 2003) Впервые с таким сталкиваюсь. Посоветовать могу только перенести таблицы из этого файла в новый. |
18.05.2009, 17:46 | #17 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
Вы не тот столбец отнимаете:
Sheets("Штатное расписание").Cells(i, 3) = Val(Sheets("Штатное расписание").Cells(i, 2)) - Val(Sheets("Физические лица").Cells(i, 3)) |
18.05.2009, 19:06 | #18 |
Пользователь
Регистрация: 12.05.2009
Сообщений: 18
|
про столбец да...не так формулу написала ((
исправила код: Private Sub CommandButton1_Click() With Sheets("Штатное расписание") i = 2 Do While Sheets("Физические лица").Cells(i, 2) <> Sheets("Штатное расписание").Cells(i, 1) Sheets("Штатное расписание").Cells(i, 3) = Val(Sheets("Штатное расписание").Cells(i, 2)) - Val(Sheets("Физические лица").Cells(i, 3)) i = i + 1 Loop End With End Sub получается, что теперь программа сравнивает только i-ую строку обеих страниц...а нужно,чтобы сравнивала каждую строку второй с каждой строкой первой...переделала следующим образом: Private Sub CommandButton1_Click() i = 3 j = 2 Do While Sheets("Физические лица").Cells(i, 2) <> "" If Sheets("Физические лица").Cells(i, 2).Value = Sheets("Штатное расписание").Cells(j, 1).Value Then Sheets("Штатное расписание").Cells(j, 3) = Val(Sheets("Штатное расписание").Cells(j, 2)) - Val(Sheets("Физические лица").Cells(i, 3)) i = i + 1 j = j + 1 End If Loop End Sub теперь эксель виснет....как изменить код? |
18.05.2009, 19:17 | #19 |
Пользователь
Регистрация: 12.05.2009
Сообщений: 18
|
вот так эксель не виснет:
Private Sub CommandButton1_Click() i = 3 j = 2 Do While Sheets("Физические лица").Cells(i, 2) <> "" If Sheets("Физические лица").Cells(i, 2).Value <> Sheets("Штатное расписание").Cells(j, 1).Value Then GoTo 10 Sheets("Штатное расписание").Cells(j, 3) = Val(Sheets("Штатное расписание").Cells(j, 2)) - Val(Sheets("Физические лица").Cells(i, 3)) 10 i = i + 1 j = j + 1 Loop End Sub но и правильно не считает (( |
18.05.2009, 20:04 | #20 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
sttafi, у Вас не совсем верно организован цикл проверки. Если подождёте чуток, попробую нарисовать.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подсчет суммы в DBGrid | girz | БД в Delphi | 3 | 16.05.2009 14:11 |
подсчет ячеек в зависимости от даты | Алексей777 | Microsoft Office Excel | 4 | 20.02.2009 13:48 |
Подсчет суммы | Kardi | PHP | 0 | 23.11.2008 16:46 |
Удалить строку листа Excel при выполнении условия | Gennady | Microsoft Office Excel | 14 | 18.12.2007 13:54 |