Страница 1 из 1
Сохранение данных из формы в таблице EXEL
Добавлено: 10 окт 2004, 16:17
samara
1. нужно по нажатию кнопки записывать значение ячейки "А" в свободную строку другого листа.
2. нужно делать выборку данных из столбца по дате (за текущий месяц, за прошедший месяц, за год и всего.
Понимаю, что это все элементарно, но я не знаком с VB
Все больше php+mysql
Заранее спасибо за помощь
Добавлено: 10 окт 2004, 22:38
Naeel Maqsudov
1.
В какую-нибудь ячейку поместите формулу, которая подсчитывает, сколько ячеек уже заполнено.
=счет('ДругойЛист'!A:A) или =счетз('ДругойЛист'!A:A)
для удобства эту ячейку можно пометить именем (Вставка/Имя/Присвоить), например "Счетчик".
Теперь можно написать всего одну строчку:
WorkSheets("ДругойЛист").Cells(range("Счетчик").value,1).Value = Range("Ячейка_А").Value
2.
Меню Данные/Фильтр/Автофильтр - никакого VB - это обычная функциональность Excel
Добавлено: 11 окт 2004, 09:21
samara
Я извиняюсь, а куда вписывать
WorkSheets("ДругойЛист").Cells(range("Счетчик").value,1).Value = Range("Ячейка_А").Value
?
спасибо за ответ
Добавлено: 11 окт 2004, 22:13
Naeel Maqsudov
Гхммм... э-э-э.... Гх-гхммм....
Значит так... ФОРМУ (если, конечно имеется в виду та самая форма, которая добавляется в VBA-проект, после перехода в "Редактор VBA" (Ctrl+F11)) Вы добавили, значит, кнопку на нее положить можете. В режиме редактирования формы двойной щелчок по кнопке переведет Вас в редактор текста программ, и создаст там процедуру вида
Код: Выделить всё
Private Sub CommandButton1_Click()
|
End Sub
Так вот между строчками "Private Sub" и "End Sub" это все и вписывать.
Ну а для запуска формы будет нужен макрос
Для макросов целесообразно в проект добавить отдельный модуль.
Добавлено: 16 окт 2004, 13:54
samara
При использованиие такой схемы WorkSheets("ДругойЛист").Cells(range("Счетчик").value,1).Value = Range("Ячейка_А").Value , выдает ошибу run-time, если ячейки "Счетчика" пустые(0). Как этого избежать?
Как записать из ("Ячейка_А"), данные в , допустим, 6 таблиц."ДругойЛист""ДругойЛист2" и т.д.
Спасибо за ответ.
Добавлено: 18 окт 2004, 08:26
Naeel Maqsudov
выдает ошибу run-time, если ячейки "Счетчика" пустые(0). Как этого избежать?
написать оператор IF
Да! Еще вот что. В Cells(x,y) и x, и y должны быть >0 и поэтому наверное вы хотели написать
....Cells(range("Счетчик").value
+1,1).Value.....
Как записать из ("Ячейка_А"), данные в , допустим, 6 таблиц."ДругойЛист""ДругойЛист2" и т.д.
Ну, шесть раз написать
WorkSheets("ДругойЛистXXX").Cells(range("Счетчик").value+1,1).Value = Range("Ячейка_А").Value
Можно также организовать цикл. Например, по всем листам, названия которых начинаются с "ДругойЛист".
См. "For Each"
Добавлено: 19 окт 2004, 08:49
RED OCTOBER
ПРи использование этой схемы
WorkSheets("ДругойЛист").Cells(range("Счетчик").value,1).Value = Range("Ячейка_А").Value
Не получается записать значение из новой ячейки в "Другой лист"
Получается, что таким образом можно записать только одно значение из "листа", в "другой лист".
еСЛИ ПИСАТЬ ЕЩЕ РАЗ ЭТУ СТРОЧКУ(ДЛЯ ПЕРЕНОСА ЕЩЕ ОДНОЙ ЯЧЕЙКИ), ТО ОШИБОК НЕТ, НО И РЕЗУЛЬТАТА ТОЖЕ...
СПАСИБО
Добавлено: 21 окт 2004, 09:46
RED OCTOBER
WorkSheets("ДругойЛист").Cells(range("Счетчик").value,1).Value = Range("Ячейка_А").Value
Как записать "ячейку B" в "другой лист"?
Если писать первую строчку, то ничего не происходит...
Есле можно по подробней..
Сапасибо за ответ
Добавлено: 25 окт 2004, 00:26
Naeel Maqsudov
<any_range1>.value = <any_range2>.value
any_rangeX - это обращение к любому диапазону на любом листе!
Например:
WorkSheets("Лист1").Range("A1:B6").Value = WorkSheets("Лист2").Range("E2:F7").Value
Копирует содержимое Лист2!E2:F7 в Лист!A1:B6, т.е. сразу 12 ячеек.