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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2011, 12:45   #1
ZHDN
Пользователь
 
Регистрация: 25.07.2011
Сообщений: 42
По умолчанию Проверка

Извиняюсь может вапрос звучит глупо. Как проверить есть значение в ячейки или нет? Дапустим Проверяем ячейку С4 если он пустая то записвваем в нее значение ячейки E4, если нет то переходим к ячейке C5 и проверяем ее и так до тех пор пока не окажится пустая ячейка в которую запишутся значения из ячейки E4.
ZHDN вне форума Ответить с цитированием
Старый 10.11.2011, 12:58   #2
Jarik
Пользователь
 
Регистрация: 28.02.2008
Сообщений: 53
По умолчанию

Код:
Sub A()
    N=100
    For i = N To 2 Step -1
        If IsEmpty(Cells(4, i - 1)) Then
            Cells(4, i - 1) = Cells(4, i)
        End If
    Next i
End Sub
Если я конечно, правильно понял условие

Последний раз редактировалось Jarik; 10.11.2011 в 13:01.
Jarik вне форума Ответить с цитированием
Старый 10.11.2011, 12:59   #3
ZHDN
Пользователь
 
Регистрация: 25.07.2011
Сообщений: 42
По умолчанию

Код:
Sub Макрос1()
   If Range("E4").Value = 0 Then
   Range("C4").Value = Range("B1").Value
    End If
End Sub
вот так если ячейка пустая, а дальще не могу сообразить

Последний раз редактировалось ZHDN; 10.11.2011 в 13:03.
ZHDN вне форума Ответить с цитированием
Старый 10.11.2011, 13:01   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Похоже, что Вам нужно вот это:
Код:
iLastRow = Range("C" & Rows.Count).End(xlUp).Row
Это будет номер ряда с последней заполненной ячейкой в C - поиск снизу.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 10.11.2011, 13:19   #5
ZHDN
Пользователь
 
Регистрация: 25.07.2011
Сообщений: 42
По умолчанию

Смотрите есть ячейка в которой хранятся данные дапусти она будет E4.
Код:
 
Если С4 пустая то 
С4 = Е4
Код:
Если С4 заполнена то
 проверяем С5
Если С5 заполнена то
Проверяем С6
Если С6 пустая
С6=Е4
ZHDN вне форума Ответить с цитированием
Старый 10.11.2011, 13:34   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Вы не поняли
Зайдём с другой стороны - смотрите, есть столбец с данными. Ищем снизу первую заполненную ячейку, потом можем к значению этого ряда прибавить 1 и писать данные туда.
Или наоборот - ищем сверху последнюю из непрерывного блока (т.е. до пустой ячейки):

Код:
iLastRow = Range("C4").End(xlDown).Row
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 10.11.2011 в 13:37.
Hugo121 вне форума Ответить с цитированием
Старый 10.11.2011, 13:40   #7
ZHDN
Пользователь
 
Регистрация: 25.07.2011
Сообщений: 42
По умолчанию

все равно не че не понял блин. А куда эту строчку вставить то.
ZHDN вне форума Ответить с цитированием
Старый 10.11.2011, 13:52   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Пойдём сверху - т.е. в первую пустую:
Код:
Sub Макрос1()
Dim iLastRow As Long
iLastRow = Range("E4").End(xlDown).Row
Range("C" & iLastRow + 1).Value = Range("B1").Value
End Sub
или короче
Код:
Sub Макрос1()
Range("C" & Range("E4").End(xlDown).Row + 1).Value = Range("B1").Value
End Sub
Буквы B, C, E отслеживайте сами - я уже запутался, что именно нужно
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 10.11.2011 в 13:54.
Hugo121 вне форума Ответить с цитированием
Старый 11.11.2011, 06:06   #9
ZHDN
Пользователь
 
Регистрация: 25.07.2011
Сообщений: 42
По умолчанию

run-time error "1004"
Method Range of object _Global failed
ZHDN вне форума Ответить с цитированием
Старый 11.11.2011, 10:49   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ниже E4 данные занесите.
Ну или если возможен такой вариант, что данных ниже E4 нет - то нужно доп.проверку в код вводить, или искать снизу:
iLastRow = Range("E" & Rows.Count).End(xlUp).Row

В общем, принцип такой, а по месту нужно настроить.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
excel.Проверка VBA и проверка функции Будда Помощь студентам 0 14.04.2011 21:10
Проверка veter48 Visual C++ 14 29.08.2010 15:28
проверка на IE TDrive JavaScript, Ajax 2 05.03.2010 13:41
Проверка Манжосов Денис :) Общие вопросы Delphi 4 17.10.2008 16:27