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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2009, 22:48   #1
systemmind
Пользователь
 
Регистрация: 06.02.2009
Сообщений: 41
По умолчанию Запись в конец столбца

Здравствуйте.
У меня есть столбец значений. Задача для VBA. Каким образом можно сделать так, чтобы при выполнении какого-либо события (например нажатия клавиши или проверки условия) происходила запись в пустую ячейку следующую сразу после последней заполненной ячейки этого столбца?
Зараннее спасибо.
systemmind вне форума Ответить с цитированием
Старый 12.02.2009, 00:41   #2
С.М.С
Участник клуба
 
Аватар для С.М.С
 
Регистрация: 29.12.2008
Сообщений: 1,598
По умолчанию

самый простой способ - открыть цикл адресов ячеек, затем проверить есть ли в проверяемой ячейки значение, если нет записать в неё информацию(по уму закрыть цикл при записи в пустую ячейку).
С.М.С вне форума Ответить с цитированием
Старый 12.02.2009, 02:39   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub test()
    Cells(Rows.Count, "A").End(xlUp).Offset(1) = "Новое значение в столбце A"
    ' Cells(Rows.Count, "A") - последняя ячейка в столбце A
    ' .End(xlUp) - поднимаемся вверх на последнюю заполненную ячейку
    ' .Offset(1) - спускаемся на одну ячейку вниз (пустая ячейка после последней заполненной)
    
    Cells(Rows.Count, 15).End(xlUp).Offset(1) = "Новое значение в столбце 15"
End Sub
Подразумевается, что хоть одна ячейка в этих столбцах заполнена.
EducatedFool вне форума Ответить с цитированием
Старый 12.02.2009, 22:17   #4
systemmind
Пользователь
 
Регистрация: 06.02.2009
Сообщений: 41
По умолчанию

О, спасибо огромное! Как все просото оказывается)
systemmind вне форума Ответить с цитированием
Старый 22.02.2009, 15:16   #5
systemmind
Пользователь
 
Регистрация: 06.02.2009
Сообщений: 41
По умолчанию

Еще похожий вопрос. Как присвоить какой либо ячейке количество заполненных ячеек какого либо столбца?
systemmind вне форума Ответить с цитированием
Старый 22.02.2009, 15:34   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Введите в ячейку формулу =СЧЁТЗ(E1:E30)

В ячейке увидите количество заполненных ячеек в диапазоне E1:E30

Для подсчёта ячеек во всём столбце формула примет вид =СЧЁТЗ(E:E)
EducatedFool вне форума Ответить с цитированием
Старый 22.02.2009, 15:37   #7
systemmind
Пользователь
 
Регистрация: 06.02.2009
Сообщений: 41
По умолчанию

А как это сделать в VBA.
systemmind вне форума Ответить с цитированием
Старый 22.02.2009, 15:44   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Примерно так:

MsgBox WorksheetFunction.CountA(Range("e1:e46"))

[d4] = WorksheetFunction.CountA([e1:e46])
EducatedFool вне форума Ответить с цитированием
Старый 22.02.2009, 18:42   #9
systemmind
Пользователь
 
Регистрация: 06.02.2009
Сообщений: 41
По умолчанию

Спасибо. Но вот сново трудность: каким образом в VBA можно очистить содержимое столбца начиная, например с 10 ячеки?
systemmind вне форума Ответить с цитированием
Старый 22.02.2009, 18:49   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub test()
    Range("b10:b" & Rows.Count).ClearContents ' очистка только значений
    Range("b10:b" & Rows.Count).Clear ' полная очистка (вместе с форматированием)
End Sub
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конец числового массива char Байт Общие вопросы C/C++ 4 04.02.2009 21:19
В прямоугольной матрице переставить столбцы так, чтобы сумма элементов столбца росла от первого столбца Aleo13 Помощь студентам 5 15.10.2008 18:34
Добавить в конец текст Konstantin_Z Microsoft Office Excel 5 01.09.2008 13:10
Конец света и сверхъестественное Hallo Свободное общение 113 30.03.2008 00:10
Добавить данные в поле (в конец) John_chek БД в Delphi 6 20.08.2007 14:23