powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как программно обрабатывать данные в таблицах?
2 сообщений из 2, страница 1 из 1
Как программно обрабатывать данные в таблицах?
    #32686025
garober
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Показалось не совсем рациональным с точки зрения затрат времени и размера файла обрабатывать элементы данных в электронных таблицах путем записи практически одинаковых выражений и функций в отдельные клетки и особенно в целые строки и столбцы.

Хотелось бы научиться обрабатывать данные в таблице (поименованной области) с помощью программного кода.

Учиться лучше на конкретном примере, например на таком.

Автоматическое выявление большего количества наилучших значений свойств у той или иной модели монитора.

Ниже приводится собственно сам пример – в виде таблицы или поименованной области.
(См. приложение “CountParameters.xls”)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 
Определение лучших значений по мониторам
   | A   |           B     |    C    |    D   |   E   |   F   |   G   |   H   |
 3 |N п/п| Наименование    I Признак | Лучшее |Модель1|Модель2|Модель3|Модель4|
   |     | параметра       | Мин/Мах |значение|       |       |       |       |
 4 |-----|-----------------|---------|--------|-------|-------|-------|-------|
 5 |   1 | Цена            |     Мин |    330 |   330 |   350 |   330 |   360 |
 6 |   2 | Яркость         |     Мах |    400 |   350 |   250 |   400 |   390 |
 7 |   3 | Контрастность   | Мах     | 400:1  | 250:1 | 300:1 | 350:1 | 400:1 |
 8 |   4 | Время реакции   |     Мин |     13 |    20 |    17 |    16 |    13 |
 9 |   5 | Вес             |     Мах |    3,1 |   3,5 |   3,1 |   3,1 |   3,9 |
 9 |   6 | Встроен.динамики| Да      | да     | нет   | да    | да    | да    |
10 |     | Параметр М      |         |        |       |       |       |       |
11 |     | Итого, лучших   |         |     6  |     1 |     2 |     3 |     3 |
 

Новую сравниваемую модель монитора записывать в столбец:
- лучше, в новый столбец справа, от последнего заполненного,
-либо слева, перед последним столбцом (он предполагается всегда быть пустым) входящим в поименованную область

Число оценочных параметров (строк) в колонке В, также как и число моделей (новые колонки) со временем может увеличиваться, т.е. поименованная область изменяется в размерах.

Можно ли диапазон клеток, в котором находится таблица после ввода новой строки
и особенно нового столбца справа

определять автоматически или надо каждый раз изменять размер поименованной области?

В колонку Признак Мин/.Мах предварительно, при вводе очередного параметра, вручную записывается признак как оценивать параметр - Мин или Мах:
Например, для цены это Мин (хочется купить подешевле), для яркости – это Мах (желательно, чтобы был поярче) и т.д.

Лучший параметр, после ввода в таблицу значений для новой модели должен попадать в колонку Лучшее значение, в своей колонке для данного параметра он должен также выделяться для наглядности желтым цветом, и кроме того в клетке «Итого, лучших» - должно вычисляться /пересчитываться число лучших параметров для каждой модели и выделяться желтым цветом, а м число наилучших параметров у лучшей модели должно выделяться красным цветом..

В приведенном файле Excel имеются выражения и функции:

-в колонке «Лучшие значения»,
например, для D5: =ЕСЛИ(C5="Мах";МАКС(E5:H5);МИН(E5:H5))
-в строке «Итого, лучших»,
например, для D11 =nColorCells(D5:D10) -эту функцию нашел в одной из тем.

Вот именно эти выражения и функции хотелось бы не записывать в каждую клетку,
а обработать программно.



Кто-нибудь подскажет:
-как это делается,
-с чего начинать,
-может, есть что-либо почитать (лучше в Интернет) по программированию для Excel-таблиц?

Или на примере – научит?
...
Рейтинг: 0 / 0
Как программно обрабатывать данные в таблицах?
    #32686416
anjey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что касается программного доступа к ячейкам листа Ёкселя, то я на пример использую такие выражения:

доступ к значению активной
ячейки(на которой стоит курсор ввода) - Activecell.Value

доступ к формуле активной
ячейки(на которой стоит курсор ввода) - Activecell.Formula

и так далее...

можно использовать абсолюный метод адресации:
например увидеть значение ячейки А1 можно так:

Sub test
MsgBox Range("a1").Value
End Sub

или так относительный метод

Sub test
MsgBox Cells(1,1).Value
End Sub

Кстати самый лучший способ изучения VBA для начинающего, это записывать макросы, а потом просматривать их исходный текст сформированный Ёкселем... :)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как программно обрабатывать данные в таблицах?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]