|
Вставка функции персчета массива в счетчик
|
|||
---|---|---|---|
#18+
Уважаемые форумчане! У меня имеется массив, который изменяется при помощи формул, записанных в ячейках, счетчиком. В приведенном примере в ячейке А1 работает счетчик, а в ячейках С6:С16 производится вычисление, то есть умножение ячеек F6:F16 с округлением до 0 на показания счетчика. Как можно записать эту формулу =ОКРУГЛ($A$1*F6;0) в макрос счетчика: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
чтобы персчет призводился при каждом изменении счетчика ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 13:07 |
|
Вставка функции персчета массива в счетчик
|
|||
---|---|---|---|
#18+
Round(Number, [NumDigitsAfterDecimal As Long]) Это ОКРУГЛ на VB ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 14:40 |
|
Вставка функции персчета массива в счетчик
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 14:53 |
|
Вставка функции персчета массива в счетчик
|
|||
---|---|---|---|
#18+
Только данный цикл сам по себе будет бессмысленным, можно сразу присвоить конечные значения счетчику и ячейкам ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 14:56 |
|
Вставка функции персчета массива в счетчик
|
|||
---|---|---|---|
#18+
Shocker.ProТолько данный цикл сам по себе будет бессмысленным, можно сразу присвоить конечные значения счетчику и ячейкам Ага..... полностью согласен..... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 15:12 |
|
Вставка функции персчета массива в счетчик
|
|||
---|---|---|---|
#18+
Спасибо огромное!!!!! Воспользуюсь советами. Вы профи! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 11:41 |
|
Вставка функции персчета массива в счетчик
|
|||
---|---|---|---|
#18+
Насчет бессмысленности цикла не согласен. Там у меня много разных условий и мне необходимо построить в конце-концов график показаний счетчика за весь цикл, при которых выполнены все условия. Но это лирика. Проблема в том, что в примере я дал только 10 строчек, а у меня их больше 3000, поэтому записать все ячейки в код бессмысленно. Больше времени уйдет, чем рассчет программы. А вот как записать в одной строке все ячейки сразу? Ну, например столбец F6:F3011, каждая строка умножается на показания счетчика и результат выводится в столбец C6:C3011. Это я записал в таком виде: [c6:c3011].Value = [f6:f3011*A1]. Вроде все работает, но когда я добавил еще несколько столбцов: [c6:c3011].Value = [f6:f3011*A1] [j6:j3011].Value = [m6:m3011 * A1] [q6:q3011].Value = [t6:t3011 * A1] [x6:x3011].Value = [aa6:aa3011 * A1] [ae6:ae3011].Value = [ah6:ah3011 * A1] [al6:al3011].Value = [ao6:ao3011 * A1] [as6:as3011].Value = [av6:av3011 * A1] [cb6:cb3011].Value = [ce6:ce3011 * A1] [ci6:ci3011].Value = [cl6:cl3011 * A1] [cp6:cp3011].Value = [cs6:cs3011 * A1] [cw6:cw3011].Value = [cz6:cz3011 * A1] [dd6:dd3011].Value = [dg6:dg3011 * A1] [dk6:dk3011].Value = [dn6:dn3011 * A1] [dr6:dr3011].Value = [du6:du3011 * A1] то программа стала немыслимо тормозить. При этом мне пришлось перенести округление в другой столбец, поскольку не знал, как это сделать. Ваша строка: ActiveSheet.Cells(6, 3) = Round(CounterCell.Value * ActiveSheet.Cells(6, 6), 0) выглядит супер профессионально, только я, бедолага, не представляю как ее распрстранить на весь столбец и на все столбцы. В самом excel я вроде немного разбираюсь, а в VBA - полный профан... Вдруг сможете помочь? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 12:11 |
|
Вставка функции персчета массива в счетчик
|
|||
---|---|---|---|
#18+
Alkhimik ActiveSheet.Cells(6, 3) = Round(CounterCell.Value * ActiveSheet.Cells(6, 6), 0) выглядит супер профессионально, только я, бедолага, не представляю как ее распрстранить на весь столбец и на все столбцы. В самом excel я вроде немного разбираюсь, а в VBA - полный профан... Вдруг сможете помочь? ActiveSheet.Cells(6, 3) 6- номер строки, 3- номер столбца ActiveSheet.Cells(6, 3) = Round(CounterCell.Value * ActiveSheet.Cells(6, 6), 0) - первая строка вашего массива ActiveSheet.Cells(7, 3) = Round(CounterCell.Value * ActiveSheet.Cells(7, 6), 0) - вторая строка Ну далее должно быть ясно..... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 13:07 |
|
Вставка функции персчета массива в счетчик
|
|||
---|---|---|---|
#18+
Ясно. Только неужели это писать 3000 раз для одного столбца, если в нем 3000 строк? А для 14 столбцов? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 13:18 |
|
Вставка функции персчета массива в счетчик
|
|||
---|---|---|---|
#18+
Может можно изобразить что-то типа: k from 6 to 3011 и далее: ActiveSheet.Cells(k, 3) = Round(CounterCell.Value * ActiveSheet.Cells(k, 6), 0) k = k + 1 Но это мои рассуждения дилетанта, а как бы их воплотить в жизнь? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 13:24 |
|
Вставка функции персчета массива в счетчик
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 13:24 |
|
Вставка функции персчета массива в счетчик
|
|||
---|---|---|---|
#18+
AlkhimikЯсно. Только неужели это писать 3000 раз для одного столбца, если в нем 3000 строк? А для 14 столбцов? Ну я ж не знал сколько там строк...... Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2018, 13:38 |
|
|
start [/forum/topic.php?fid=60&msg=39712385&tid=2154995]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 263ms |
total: | 392ms |
0 / 0 |