Цель: рисую графики функций в экселе. Это моё увлечение на сегодняшний вечер, но хочется и на питоне, что-нибудь сделать... Во-первых: Дано: уравнение любой сложности вида:
Код
f(x,y,z)=g(x,y,z)
Например, такое:
Код
sin(x)*(y+1)+z^2=cos(x)*sin(y)*tg(z)
1) Как решить эту балладу на компе без сторонних библиотек? Мне нужен Алгоритм! Т.е. должен получится массив из 3 точек Размером N: MyArray(N) = (Xn, Yn, Zn). Или же 3 столбика X, Y, Z. (на языке ячеек excel ) 2) Как-то же решает desmos или geogebra, когда пользователь вбивает в Input: свои скверные формулишки? 3) Обязательно ли применять дифурчик для этого дела. Если да то как решать дифурчик, есть ли алгоритмы для ручного решения д.у.? Во-вторых: Рафик был чистой воды не виновен.
В-четвертых: Посмотрите на это: https://youtu.be/HXnb-et3q1Q?list=PLLzv8AAxZ0QYkySxp-_RBIDFG2rMvgTIq "Conformal Mapping". Что это вообще такое происходит? А? Как это перевести в декартовы координаты? P.S.: Буду рад вычислить Вас по IP выслушать любые предложения по этому поводу.
У меня 2 вопроса. 1) Как ускорить обновление картинки диаграммы скажем с частотой каждые 200 МИЛИ СЕКУНД? 2) Во время макроса меняются данные, но на диаграмме, - вообще ничего не обновляется, "Почему?" - это второй вопрос .
Код
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Пробовал как выше, но это в начале можно поставить, а дальше в while MyCode Sleep 200 wend, но это тоже не срабатывает. P.S. юзаю точечную диаграмму (Xn,Yn).
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub M0000()
Dim ee As Object
Dim zz As Object
Dim RR As Integer
Dim GG As Integer
Dim BB As Integer
RR = 0
GG = 0
BB = 0
Set ee = Nothing
Set zz = Nothing
Range("A1:Z60").Select
For Each zz In Selection
zz.Interior.Color = RGB(255, 255, 255)
Next zz
Range("A1:Z60").Select
For Each ee In Selection
RR = 0
GG = 0
BB = 0
RR = Int((254 * Rnd) + 1) 'Ý(0;255)
GG = Int((254 * Rnd) + 1)
BB = Int((254 * Rnd) + 1)
ee.Interior.Color = RGB(RR, GG, BB)
ee.Value = RR
Debug.Print RR
'On Error Resume Next
Next ee
End Sub
'Sleep 240
Я думал, может тип в начале неправильно указан: т.е. надо может `RR,GG,BB As Integer` а скажем `Double`, а в целом макрос должен рандомно красить ячейки с "A1:Z60" по схеме `ee.Interior.Color = RGB(RR, GG, BB)` Первые 4 раза запускаю - красит, а потом не срабатывает? В чем загвоздка - не знаю!!!
Приветствую. Рисовать график по параметрическому уравнению умею. Нужно задать t: (-100;100) c шагом (0,1) (можно и по-другому) и задать R: (12). И вычисляем:
Код
x= R*cos(t)
y= R*sin(t)
Далее выделяем столбики с x и y и выбираем тип диаграммы: x y диаграмма. Кстати, если поиграться с шагом, то можно получить суперкрасивые графики. Но я заморочился по другому поводу: есть другое уравнение окружнсти (непараметрическое):
Код
R^2=x^2+y^2
Что нужно задать и как вообще решить эту галиматью? В конечном исходе должен получится столбик x и столбик y?Как ответить за базар?
Изменено: Arthur Alunts - 29.07.2023 01:38:08(Уточнил.)
Привет, друзья!!! Еще кое-что интересует... ) Как теперь сделать другое?Например, как сделать приращение ячейки [A1]:
Код
[A1]=[A1]+1
при наведении на A1 курсора, [хочу написать небольшую игру], когда в пределах клетки A1 или B2 то у них увеличивается значение до тех пор пока курсор касается ячейки A1. Как программно сказать vba? Здесь тот же подход: типа зажал (т.е. если курсор наведен на A1 и в пределах A1 [ячейки]), тогда ячейка сама увеличивается, в противном случае: если увести за пределы, то ячейка не меняется, или скажем угасает на 2 хит понта.
Привет, всем. Короче, сегодня научился пользоваться формой ))) это весело!) , но не могу понять, как вести форму, так чтобы если ввожу данные , то они сохраняются в журнале по датам т.е. актуальная инфа. На java пробовал делать. Но на vba - никак не пойму. Даже не знаю, в каком направлении рыть? Помогите, ребятки!)
Sub SetChartColorsFromDataCells()
If TypeName(Selection) <> "ChartArea" Then
MsgBox "Сначала выделите диаграмму!"
Exit Sub
End If
Set c = ActiveChart
For j = 1 To c.SeriesCollection.Count
f = c.SeriesCollection(j).Formula
m = Split(f, ",")
Set r = Range(m(2))
For i = 1 To r.Cells.Count
' c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _
' r.Cells(i).Interior.Color
c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _
r.Cells(i).DisplayFormat.Interior.Color
Next i
Next j
End Sub
Проблема в том, что диаграмму сначала нужно выделить, в моем случае это кольцевая диаграмма. А мне надо как-то в коде прописать название диаграммы, чтобы потом сразу по клику на макрос срабатовало окрашивание.(Сразу, - без предварительного выделения диаграммы.) Как мне это сделать?Как узнать имя диаграммы и вписать его в макрос?Спасибо!
Изменено: Arthur Alunts - 04.01.2023 13:51:28(опечатка)
Приветствую друзья, есть формула трохоиды, гипотрохоиды и т.д. Это - поистине красивые графики. Выкладывайте сюда графики подобных функций. С формулой. P.S. на данный момент ищу график гипотрохоиды высших порядков с N кружочками построения. Где N->infinity! Помогите ребят, пожалуйста. Вот эта ссылка, досмотрите до конца, нажав на анимацию.
Здравствуйте. У меня задача все никак не решается: Дано: Выделенные ячейки. Теперь макрос должен пробегать по всем ячейкам в выделенном диапазоне, так,чтобы перебирались все объединенные ячейки как единое целое.
Код
Dim e As Range
For Each e in Selection
'здесь код
Next e
Как же тогда сделать Перебор чтобы перебирались при
Код
next e
следующая ячейка, но если она объединённая то не перебирались все ячейки, из которых эта объединённая состоит!
Возникла проблема. Дано: [a1]= "С новым годом друзья" Нужно: создать массив из слов, выбранных из [a1]. То есть: superarray(1)=с superarray(1)=новым superarray(1)=годом superarray(1)=друзья Спасибо за внимание.
В архиве сайта есть примеры использования функции join:
Sub macros1() Dim m(1 To 10) m(1) = 44 m(2) = 22 m(3) = 33 [a2] = Join(Array(m(1), m(2), m(3), m(4)), "") End Sub Sub macros2()
[a1] = Join([O2:V2&""], "") 'âûäåëåíèå ñòðîêè: åñëè âìåñòî âòîðîãî "" ïîñòàâèòü ";" , òî ýòî áóäåò ðàçäåëèòåëü [a1].Select End Sub
Sub macros3() [a3] = Join(Application.Transpose([P2:P10]), "") End Sub
Но мне ниобходимо использовать метод Cells(y,x), чтобы было что-то типа: [o5] = Join(Array(Range(Cells(1, 2), Cells(1, 13))), "") 'для соединения ячеек строки Но это не работает!
Что здесь неверно покажите правильный пример пожалуйста!
Здраствуйте.Ребят, нужно выделить диапозон (строку) методом типа: Cells(y,x):Cells(y,x). Мне известно, что можно выделить строку так: [a1:h1].Select, но мне нужно в более общем виде, чтобы выделение скакало по строкам типа: y=y+1 и вуаля выделение скакнуло на следующую строку .Помогите пожалуйста.
Здраствуйте.Копался на форуме не нашел нужного ответа. Подскажите пожалуйста как пользоваться функцией String. Я знаю, что можно преобразовать текст в число так: [a2] = --(132132131) А как же преобразовать число 132132131 в текст. Здесь наверное нужна функция String. Покажите пожалуйста на примере.
Здраствуйте, ребята! Что значит "#" в конце значения элемента массива? Пример: memory(1,2,3)=12345678912# Мой vba сам приписывает "#" после 11-ого символа! Что сие значит?
Доброго времени суток! Ребят, у меня дан код: один в модуле листа, другой в обычном модуле! Обычный модуль вырезает значение из [c3] и вставляет в [d4]! Модуль листа при перетаскивании ячеек за рамку вызывает процедуру обычного модуля! Но вызывает его 2 раза, а мне нужно 1 раз.Подскажите, пожалуйста что не так в моем коде! См. Пример!
Извините за еще один вопрос! Как закрепить границы ячеек, чтобы при перетаскивании ячеек границы на области A1:H8 не стирались. Догадываюсь, что макрос должен быть на уровне модуля Листа!Спасибо.
Здраствуйте. Спасибо за ответы на предыдущие мои темы: KukLP, ikki, Hugo, Юрий М. Вы меня многому научили. Но чем больше учусь, тем больше вопросов. В одном из ответов в теме "Функция DeJoin" мне дали хороший макрос. Но вот проблема - нужно перевести значение элемента массива из текстового формата в числовой ("12" преобразовать в 12) Вот пример:
Здраствуйте. Читал разные темы на форуме, в т.ч. скачал надстройку PastePictures_v2003.xla Не понял как она работает и как её удалить. Дана Задача: Нужно Привязать картинки к ячейки по условию If cells(y,x).value>=1 And cells(y,x).value<=9 And cells(y,x).value<>"" then вставка картинки из папки images Но это не всё-нужно чтобы картинка перетаскивалась вместе с значением ячейки, на которой она стоит в другие ячейки!Т.о. при перетаскивании ячейки за рамку должно перетащиться не только значение, как это делается в excel по умолчанию, ,но и картинка!
Привет, Уважаемые Форумчане! На форуме не нашел решения поэтому спрошу! Нужен код, который при x=1 And "Событие1" запускал бы macros1. "Событие1"- это нажатие левой кнопки мыши на области любой ячейки,а точнее нажатие и именно отпускание нажатия. Таким образом Если x=1 и был отпуск клика на любой ячейки, то срабатывает Call Module1.macros1. Помогите пожалуйста, скачал книгу с вашего сайта "Профессиональное программирование на VBA в Excel" Автор: Уокенбах Джон. Может быть в ней есть то, что нужно но я не знаю "что" должен искать!
Привет, Ребята! Вопрос:Можно ли в одной процедуре(Sub m1) сказать коду, чтобы он запустил одновременно 2 процедуры: m2, m3! Знаю как последовательно запусить процедуры с помощью функции Call! Но мне нужен именно параллельный запуск!
Привет, форум! Наталкнулся на проблему. Дано: В массиве myarray1 первый элемент имеет значение "12r45w" Задача: Создать массив myarray2(1 to 6) в котором: myarray(1)=первому символу массива myarray1, т.е. 1 myarray(2)=второму символу массива myarray1, т.е. 2 ... и так до myarray(6)=шестому символу массива myarray1, т.е. w
Т.о. нужно сделать действие, обратное функции Join Спасибо за помощь, ребята!
Привет всем!Вот вопрос по фунуции join! В темах на форуме нашел что-то вроде:
Sub macros1() Cells(2, 14).Select ActiveCell.Value = Join(Application.Transpose(Application.Transpose([O2:V2]))) End Sub Вопросы в следующем: 1.А Как выделить столбец типа P2:P10 для сцепления значений его элементов без пробелов? 2.Как Сцепить значения элементов массива myarray(1 to 10) без пробелов? 3.Как сцепить значения элементов ячеек типа M2:Q4
Привет, Ребята! Вот в чем Задача. Есть: Module1, в нем Sub по имени macros1. Есть: Module2, в нем Sub по имени macros2, в нем метка line2. Требуется: код в macros1, который смог бы ссылаться в Module2,Sub macros2,в метку line2. Помогите пожалуйста!Спасибо!
Привет ребята.Подскажите как в VBA реализовать задачи. Задачи: 1.Нужна Остановка Выполнения Кода на 165 секунд, затем продолжать с места остановки(далее). 2.Нужна Остановка Выполнения Кода на 165 секунд, затем переход в Module1, в Sub macros1, в метку line6:. 3.Включение Module1, macros1, line6: в 12:20:00
Привет всем! Подскажите как в VBA сказать: 1. чтобы далее выполнялся код например 5-ой строки 2. или назвать фрагмент кода fragment1 и в любом месте кода указать If x<0 then выполни fragment1. 3.Кажется это называется процедура :) ... или пользовательская функция :)