|
5 / 5 / 2
Регистрация: 02.10.2013
Сообщений: 147
|
||||||
Расчет значения и вывод данных в ячейки слева02.10.2013, 18:36. Показов 5842. Ответов 31
Метки нет (Все метки)
Заранее извиняюсь если решение где то есть, но я его не нашел.
Есть значение в ячейке S в зависимости от его значения меняется коэффициент. Далее еще должно идти одно сравнение и расчет нескольких переменных которые нужно вывести в соседние слева ячейки от ячейки S естественно строк с такими переменными много и как тут решить проблему вообще понять не могу
Заранее спасибо
0
|
||||||
| 02.10.2013, 18:36 | |
|
Ответы с готовыми решениями:
31
вывод полученного значения в разные ячейки Вывод значения ячейки excel в com-порт Поиск ячейки в другой книге и вывод значения |
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
||||||
| 02.10.2013, 19:48 | ||||||
Класс! "...этот бардак не работает..." ![]() У меня машина сегодня с ума сьехала - сам был виноват. У Вас должна быть такая тоже история ![]() Смотрите. Я не понимаю что это (машина тоже) ActiveSheet.Cells(, -2) = PR1 Вы машине сказали: "Запиши в ячейку, но в какой ряд я не знаю сам, зато столбец должен быть " -2 "". Она, наверное, до теперь ищет, уже за пределами помещения... Ну не бывает в Excel номеров столбцов (и рядов) меньше 1.А что б сделать жизнь коэф-в, себе, машине легче - используйте Select case. Я смотрел на коэф-ты - и ничего не понял. И уйдите от спец. термина value как от имени переменной!!! Как-то так:
0
|
||||||
|
5 / 5 / 2
Регистрация: 02.10.2013
Сообщений: 147
|
|||||||||||
| 02.10.2013, 20:18 [ТС] | |||||||||||
|
номер строки должен быть тем же из которой бралось первичное значение, то есть решение записывается в ту же строку но в другой столбец, тут у меня проблема.
по сути дела здесь идет два сравнительных правила и оба независимы друг от друга, но зависят от единого значения в ячейке 1. это чему равен будет коэфф. kpf
0
|
|||||||||||
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
||||||
| 02.10.2013, 21:28 | ||||||
|
Почему немного не так? Распишите, подумаем вместе. Еще раз. Номер строки нужно указать, он не может быть ничем.
Добавлено через 29 минут Уточню.
Если бы я Вам дал задание выбрать - что бы Вы выбрали???!!! Про вторую молчу, что б больше не запутать.
0
|
||||||
|
5 / 5 / 2
Регистрация: 02.10.2013
Сообщений: 147
|
|||||||||||
| 02.10.2013, 22:25 [ТС] | |||||||||||
|
Согласен, ваш расчет kpf более правилен (просто я эта функция у меня есть в php, а теперь мне нужно это чудо засунуть в VBA). насчет до минус чертика не выйдет, значения всегда положительные и больше нуля
я конечно не уверен но если перевернуть то тогда логика по идеи обязана сойтись
А как вывести значения PR1,PR2,PR3 и тд. в той же строке но левее???
0
|
|||||||||||
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 02.10.2013, 23:31 | |
|
Почти.
![]() case is > 4690 PR1 = value * kpf PR2 = PR1 * kpf PR3 = PR2 * kpf case is 2801 to 4699 ....что-то............. Но Ваша основная задача привязать kpf к условию. И не имеет значение, это VBA, или php. В предыдущих условиях так и делается (case is 1001 to 2500: kpf = 1.034), а для > 4690 kpf с неба само падает, нужное? И какое оно? Мне самому интересно, не вижу. ![]() И лучше идти в "хронолигии" - не запутаетесь. Добавлено через 6 минут И Вы упрямо хотите довести машину до шизофрении. Есть у Вас там выражение: ActiveSheet.Cells(, -2) = PR1 Правильно звучит так (грубо, приблизительно): ActiveSheet.Cells(5, 2).Value = PR1 Точно машина не запутается, где какое "value"? А Вы? Не запутаетесь? Добавлено через 14 минут О! Я, кажется, очень умный!!! Догадался почему у Вас там столбик -2. Есть такое, но используется только с Оffset. Означает, отступить вправо/вниз (с минусом - влево/вверх) от указанного.Если Вы запишете (имея ввиду ячейку "А2"), например, cells(2,1).offset(-3, -2) - получите ошибку. Почему - я уже писал (не умеет комп искать у соседей. Или "хорошо воспитанный" )
0
|
|
|
5 / 5 / 2
Регистрация: 02.10.2013
Сообщений: 147
|
||||||||
| 02.10.2013, 23:35 [ТС] | ||||||||
но если использовать вот это ActiveSheet.Cells(5, 2).Value = PR1 то значение попадет в определенную ячейку т.е. 5 строка 2 столбец, а мне нужно записать в ту же строку из которой бралось значение, но в другой столбец, точнее столбцы.
0
|
||||||||
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|||||||
| 03.10.2013, 01:04 | |||||||
|
Или я слепой, или я тупой...
![]() У Вас три блока. 1-й - определяете значение kpf по границам ( это в пределах select case - end select). Все! Есть! После end select мы уже знаем, с машиной вместе, какой kpf нам будет нужен и какое myVALUE живет в даный момент. Закончили!!! 2-й блок - обрабатываем значения PR1 = myVALUE * kpf '(или valueВсехСВЯТЫХ, или еще как-то, но только не просто value!!! )PR2 = PR1 * kpf PR3 = PR2 * kpf Все! Есть! Получили! 3-й блок - определяем точку вставки (другими словами - привязываемся к чему-то или определяем что-то, например, к какой-то РЕАЛЬНОЙ ячейке!!!). А уже от нее, с помощью OFFSET, передвигайтесь и вставляйте куда хотите и как хотите. E.G.
Просто Вы, мне кажется, совсем не понимаете "как двигаются шахматные фигуры по полю".Добавлено через 6 минут
0
|
|||||||
|
5 / 5 / 2
Регистрация: 02.10.2013
Сообщений: 147
|
|||
| 03.10.2013, 07:12 [ТС] | |||
0
|
|||
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 03.10.2013, 09:17 | |
|
Ну и здесь рисуйте.
.offset(-1,2).value=PR1: .offset(1220,5).value=PR2: .offset(-3,9).value=PR3
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
||||||
| 03.10.2013, 09:32 | ||||||
|
При использовании select case вполне достаточно писать так (для целых чисел):
0
|
||||||
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 03.10.2013, 10:18 | |
|
Здравствуйте Hugo. Можно, но я бы не рисковал.
Например, при Desc. Перехватит меньше чего-то - и сразу дальше передача как аргумент в доп. процедуру. Вы увидите, я увижу - а ТС? Ну и наглядее...
0
|
|
|
5 / 5 / 2
Регистрация: 02.10.2013
Сообщений: 147
|
||
| 03.10.2013, 23:35 [ТС] | ||
|
Сорри, туплю по страшному, но почти вся инфа в инете copypaste и нужного мне не найти
0
|
||
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
||||||
| 03.10.2013, 23:41 | ||||||
|
Что-то я файла не вижу с функцией... Надеюсь Вы её не в ячейке применяете?
А ответ -
0
|
||||||
|
5 / 5 / 2
Регистрация: 02.10.2013
Сообщений: 147
|
|
| 03.10.2013, 23:51 [ТС] | |
|
Пока я ее еще нигде не применяю, т.к. завершить и получить нужный результат не могу.
строк для которых нужно повторить данную операцию, порядка 1500 но вообще я планировал ее использовать как пользовательскую функцию для определенных строк. завтра буду мучать свою машину, надеюсь волшебный зеленый дымок из нее не пойдет
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 03.10.2013, 23:56 | |
|
Пользовательские функции листа не могут изменять значения других ячеек (ну есть одно исключение, но не в данном случае).
Но можно написать одну массивную, которая будет выводить результат сразу во все 1500. Если конечно можно (файла с задачей ведь никто не видел...)Ну или полегче - массивную на эти три ячейки. Но конечно быстрее будет работать одна на 1500*3, чем 1500 разных*3
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
||||||
| 04.10.2013, 00:55 | ||||||
|
To dj_oni, Вы ведь ее как берете (это myValue), значит обращаетесь к ней. Один из вариантов - запомнить в переменную ее номер ряда и столбца. Например. Выделите любую ячейку на листе, в обычный модуль загоните код:
Кликните здесь для просмотра всего текста
Теперь можете к ней обратиться в любое время (Cells(r, c).select), пока не перешли через строку End sub (вот тогда все Ваши переменные уровня процедуры умрут), или обратиться к ячейке, e.g., расположенной правее на два столбца и на один ряд выше (если там есть место!) Cells(r,c).offset(-1,2).select
0
|
||||||
|
5 / 5 / 2
Регистрация: 02.10.2013
Сообщений: 147
|
||||||
| 06.10.2013, 10:06 [ТС] | ||||||
|
поломав немного голову над всем этим и заставив комп не матерится
получил вот что, сразу скажу данные эта штука не выводит, если вообще их считает...
с ума сойти можно
0
|
||||||
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 06.10.2013, 14:15 | |
Уже что-то на что-то начинает быть похожим.Debug.Print - это команда напечатать то, что Вы хотите увидеть даже без остановки кода в окне Immediate Window. Можно открыть при активном редакторе VBE, e.g., клавишами Ctrl + G. Такие окна и записи используют, в основном, при отладке. Потом удаляют.
0
|
|
|
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
|
||||||
| 06.10.2013, 14:46 | ||||||
|
Предложу немного подкорректировать для читабельности:
1
|
||||||
| 06.10.2013, 14:46 | |
|
Помогаю со студенческими работами здесь
20
Вывод значения ячейки массива через TextOut
Вывод значения ячейки таблицы из базы в переменную Вывод значения ячейки памяти (через регистр) на эран Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|