Прошу помощи написать функцию на VBA для объединение 3 массивов в один. Прошу посмотреть пример в приложение. Предположим имеем 3 разных вводных массива и на выводе необходимо получить 1 массив данных.
Добрый вечер. Необходима помощь знатоков. Имеется расчет сделанный в VBA. Пытаюсь сделать так, чтобы весь расчет был в 1 массиве, но расчет проводится не правильно. Не могу понять в чем ошибка. В приложение пример. Имеется функция "test - в примере результат закрашен зеленым фоном" которая производит расчет и выводит массив в 1 строчке. Если я делаю массив "test_array - в примере результат закрашен желтым фоном" то тогда каждая новая строчка это сумма двух и тд. Как сделать так, чтобы в массиве "test_array" выводилась не сумма, а результат как в "test".
Добрый день. Длительное время использовал готовое решение (макрос) для установки квадратных осей графика (Scatter). В приложение сделал пример чтобы было проще понять о чем идет речь. Данное решение работает для графика с размером сторон 1:1, но появилась необходимость сделать такое же решение, но для графика с соотношением сторон 2:1 или 3:1. Пытался решить данный вопрос своими силами, но все мои варианты не работают. Спасибо
Доброй ночи, Столкнулся с проблемой. Необходимо установить расчет экселя мануально (кнопкой) т.к. расчетный файл большой и при каждом изменение нужно ждать 1-2сек. Нужно сделать, чтобы было оповещение, что было изменение и необходимо сделать перерасчет. В VBA вписал простой код, но выдается ошибка Out of stack space. Явно делаю что-то не так или чего-то не знаю.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Range("Changed") = 0
End Sub
т.е. дальше у меня была мысль форматированием сделать закрашивание ячейки красным если значение 0. При нажатие кнопки расчета соответственно значение будет меняться на 1.
Добрый день. Имеется массив данных из 25 колонок и 50 строк (где 1 и 2 строка координата точек X и Y соответственно). Необходимо найти минимальное расстояние между всеми точками. Я думал, что единственный вариант это сделать с помощью VBA т.к. необходимо перебрать все возможное варианты? В примере всего 15 точек, но подразумевается, что может быть вариант и с 625 точками. (Может можно как-то игнорировать пустые значения?) Расстояние между точками будет по формуле D = ((x_2 - x_1) ^ 2 + (y_2 - y_1) ^ 2) ^ 0.5 Я что-то начал делать в VBA, но у меня нет идей и достаточных знаний чтобы это реализовать. Поэтому обращаюсь за помощью. Буду благодарен за любую помощь, спасибо.
Доброй ночи. Прошу помощи у знатоков. Есть необходимость реализовать следующую задачу: Нужно поставить комментарий в регионе (по примеру в RANGE(H15:R28)) в ячейку если имеется в ней значение (Или начинается с текста Amount:) и в комментарий внести значение из этой ячейки. Так же необходимо чтобы данный комментарий был динамичным (т.е. если значение пропало то удалился или если значение поменялось, то обновился). В приложение пример. Буду благодарен за помощь.
Добрый день, Название темы может не соответствует вопросу, но надеюсь это не проблема. Имеется код с циклом который создает "FreeShape" по верх точек на графике (ниже часть кода).
Код
For i = 1 To 6
Set mySrs = myCht.SeriesCollection((i))
Npts = mySrs.Points.Count
' first point
Xnode = Xleft + (mySrs.XValues(Npts) - Xmin) * Xwidth / (Xmax - Xmin)
Ynode = Ytop + (Ymax - mySrs.Values(Npts)) * Yheight / (Ymax - Ymin)
Set myBuilder = myCht.Shapes.BuildFreeform(msoEditingAuto, Xnode, Ynode)
' remaining points
For Ipts = 1 To Npts
Xnode = Xleft + (mySrs.XValues(Ipts) - Xmin) * Xwidth / (Xmax - Xmin)
Ynode = Ytop + (Ymax - mySrs.Values(Ipts)) * Yheight / (Ymax - Ymin)
myBuilder.AddNodes msoSegmentLine, msoEditingAuto, Xnode, Ynode
Next
Set myShape = myBuilder.ConvertToShape
With myShape
' USE YOUR FAVORITE COLORS HERE
.Fill.ForeColor.RGB = RGB(255, 151, 151)
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Line.Weight = 0
.Line.Transparency = 1
.Fill.Transparency = 0.6
End With
Next
На графике у меня несколько контуров и соответственно есть цикл от 1 до 6. Создается контур с закраской и тд. Но, возможно ли для первого цикла сделать цвет один для (With myShape), а для остальных циклов другой?
Доброй ночи Ув. форумчане. Беглый поиск по google не привел к положительным результатам =( Возможно ли остановить работу макроса, который завязан на Worksheet_Change ? В частности, в Worksheet_Change макрос, который задает графику равные X и Y координаты когда есть изменения (не мой):
Код
With Sheet14.Range("MaxMin")
SetSquareAxes Sheet4.ChartObjects("Chart 21").Chart, 5, 5, _
.Cells(1), .Cells(3), _
.Cells(2), .Cells(4)
End With
Имеется другой макрос, который работает с данными в таблице, но проблема в том, что при каждом изменение производится запуск Sub Worksheet_Change что очень, очень тормозит весь процесс. Возможно ли остановить Worksheet_Change до окончания работы макроса? Application.ScreenUpdating = False не помогает в данном случае.
Если будет необходим пример то подготовлю, но надеюсь проблема и так ясна. Спасибо
Добрый вечер. Необходима помощь/идеи (технической части) реализации программы в среде Excel по учету времени сотрудников, а именно: Допустим, имеем 20 сотрудников, которые должны вводить учет времени по проделанной работе (на какой тип работы ушло сколько времени). К примеру, 2 часа - собрания, 3 часа работа с бумагами и тд. И так каждый день. Соответственно в программе (если можно ее так назвать) необходима часть ввода и анализа. По части анализа самое простое - это с помощью сводной таблицы (Pivot table). Можно сортировать, делать графики и тд. Проблема по части с вводом данных и организации базы данных.
Имею некоторые идеи: 1) Для каждого человека создается свой файл, где в таблицу вводится вся информация. Проблема данного способа, как объединить всю информацию в 1 таблицу (в 1 базу данных). Сводная таблица не работает с данными из разных таблиц. У Николая Павлова есть пример на VBA, но каждый раз необходимо создавать новый отчет (не удобно). Так же в данном способе много рутинной работы =( 2) Делать все в 1 файле (базу данных) в которой будут вводить учет времени. Но проблема, что одновременно может открыть только 1 человек.
Был бы рад идеям (направить в правильное русло), как лучше реализовать данную идею по средством Excel.
Добрый день, В приложение пример с таблицей в которой при вводе порядкового номера в столбике "B" автоматически открывается скрытая ячейка, так же при удаление последней строки скрывается лишняя. Вопрос, можно ли сделать так, чтобы при удаление нескольких строк так же скрывались несколько строк и была только одна свободная. (Иначе сейчас необходимо удалять по порядку чтобы скрыть лишние строки).
Доброй ночи всем. Столкнулся с проблемой следующего характера. Предположим у нас есть функция, которая из большей базы данных (10000 строк и тд) выбирает значения из одной строки и разных столбцов. Далее в той же функции, в которой производится выбор данных, был произведен расчет. Но, мне необходимо данный расчет разделить на несколько функций. Предположим: 1 функция - Находит количество проданных яблок. 2 функция - Выручка и т.д. Но, проблема в том, что каждая функция должна использовать выбранные данные из таблицы. Можно организовать выбор данных из таблицы в каждой функции, но это двойная работа, что заметно тормозит процесс. Была идея организовать все дело в 1 функцию и с помощью CASE сделать отдельный расчет в каждом, но тогда проблема в том, что найденные переменные в CASE 1 не могут быть использованы в CASE 2? (Как пример для определения выручки нам надо знать сорт яблока из 1 функции, CASE 1).
Пример не предоставляю т.к. тогда надо что-то писать отдельно для этого. Надеюсь суть проблемы понятна из вышесказанного. Спасибо
Доброй ночи, Прошу помочь ускорить макрос, который написал для следущей цели: Имеется диапазон чисел в столбике Length и RESULT. Изходя из столбика X необходимо найти максимальное число из столбика RESULT между двумя X т.е. X соответствует данным из Length.
Предположим по примеру для X=1 X=5 необходимо найти максимальное число из столбика RESULT (равно 2). Потом для X=5 X=9 и т.д.
Я делал при помощи поиска определяя номер строки для X из столбика Length и дальше определив регион для RESULT нахожу максимальное число. Но, как оказалось, для больших задачь очень медленно работает. Прошу посмотреть пример. Может есть у кого-то идеи как можно ускорить макрос? Или возможно у меня совершенно все некорректно?
В приложение сам пример и ниже код. Очень буду благодарен за помощь. Спасибо.
Код
Function FindMyNumber(Length As Range, X As Range, Out As Integer)
Dim SearchRange_a(), i&, row_a&, row_b&, Value_num&, max_range%
Value_num = UBound(X.Value) - 1
ReDim FindRow_a(1 To Value_num)
ReDim FindRow_b(1 To Value_num)
ReDim max_value(1 To Value_num)
For i = 1 To Value_num
Set FindRow_a(i) = Length.Find(Replace(X(i), ".", "."), LookIn:=xlValues)
Set FindRow_b(i) = Length.Find(Replace(X(i + 1), ".", "."), LookIn:=xlValues)
max_value(i) = Application.Max(Abs(Application.Max(Sheets("Sheet1").Range("B" & FindRow_a(i).Row, "B" & FindRow_b(i).Row))), _
Abs(Application.Min(Sheets("Sheet1").Range("B" & FindRow_a(i).Row, "B" & FindRow_b(i).Row))))
Next
FindMyNumber = max_value(Out)
End Function
Добрый день всем на Planetaexcel.ru, Помогите,пожалуйста,разобраться в работе макроса (нашел в интернете) который ищет Адрес ячейки. Если в диапазоне целые чисел, тогда все работает как надо, как только дробные числа, то результат не верный! Прошу посмотреть пример.