intState - это номер строки; 1 - это номер столбца откуда берется название фигуры. Но тогда остается вопрос, как это имя присваивается нужному графическому объекту? Ааааа, простите туплю, все понял, все нашел... спасибо большое, буду пробовать
Доброе время суток, дамы и господа! Прошу помощи сообщества понять действие макроса:
Скрытый текст
Sub ColourStates() ' ' Using the values from named range STATE ' And the colours from named range STATE_COLOURS ' re colour the map on sheet MainMap ' Dim intState As Integer Dim strStateName As String Dim intStateValue As Integer Dim intColourLookup As Integer Dim rngStates As Range Dim rngColours As Range
Set rngStates = Range(ThisWorkbook.Names("regions").RefersTo) Set rngColours = Range(ThisWorkbook.Names("colors").RefersTo)
With Worksheets("MainMap") For intState = 2 To rngStates.Rows.Count strStateName = rngStates.Cells(intState, 1).Text intStateValue = rngStates.Cells(intState, 2).Value If intStateValue > 9 Then ' stripped With .Shapes(strStateName) intColourLookup = Application.WorksheetFunction.VLookup(CInt(Left(CStr(intStateValue), 1)), Range("colors"), 1, 0) '(CInt(Left(CStr(intStateValue), 1)), Range("STATE_COLOURS"), True) .Fill.Patterned msoPatternWideUpwardDiagonal .Fill.ForeColor.RGB = rngColours.Cells(intColourLookup + 2, 1).Offset(0, 1).Interior.Color intColourLookup = Application.WorksheetFunction.VLookup(CInt(Right(CStr(intStateValue), 1)), Range("colors"), 1, 0) .Fill.BackColor.RGB = rngColours.Cells(intColourLookup + 2, 1).Offset(0, 1).Interior.Color End With Else ' single colour intColourLookup = Application.WorksheetFunction.VLookup(intStateValue, Range("colors"), 1, 0) With .Shapes(strStateName) .Fill.Solid .Fill.ForeColor.RGB = rngColours.Cells(intColourLookup + 2, 1).Offset(0, 1).Interior.Color End With End If Next End With
End Sub
Макрос изменяет цвет фигур в зависимости от значений в ячейках. Не хватило знаний понять как автор макроса связал графические объекты со значениями в ячейках. Возникла производственная необходимость добавить новый объект и значения к нему (т.е. добавляю новый регион), но при добавлении региона и графического объекта макрос выдает ошибку. P.S. 1, Файл имеет размер 500 kb так как присутствуют графические объекты и соответственно не прикрепляется, по-этому даю ссылку на файл в гугл диске. https://drive.google.com/file/d/1CM1XKenm5ttqEg7ju5WNlkgrOYM7OZ91/view?usp=sharing 2. У автора макроса спросить не могу, так как в июле его скоропостижно не стало и работы он передать не успел. Заранее большое спасибо
Доброе время суток, дамы и господа. Сориентируйте пожалуйста вот по какой проблеме: Есть таблица (прилагаю), где первый столбец это даты выборки (он идет как подписи по оси Х) и столбец 2 - значения по которым строится собственно диаграмма. Все даты приходятся на 10 число месяца и только за август 2016 значение есть на 1 число месяца. Проблема возникает при отображении подписей по оси Х: - если отображать подписи оси Х как даты, то excel рисует все даты на первое число месяца (диаграмма 1); - если отображать в настройках оси как текст, то режет значение 01.08.2016 (диаграмма 2). Помогите советом, как договориться с excel об адекватном отображении подписей. ТТХ: MS Office 2016 Заранее спасибо.
aibolit, да я это понимаю, в обычных школах не преподают, но в школе с математическим уклоном в проекте приветствуется. Но я уже понял, что в VBA учесть мнимые числа у меня не получится. Если только частично, введением отрицательного числа при расчете в модуль. Собственно тему можно закрывать, так как aibolit абсолютно прав. Всем огромное спасибо за помощь.
Mershik, спасибо за ответ, но это не подходит, проблема не в попытке уйти от отрицательных значений, проблема запрограммировать мнимое число, точнее тоже не смогу объяснить, я гуманитарий (биолог) по образованию. при проверке на отрицательность график искажается и уже не является графиком данной функции.
Доброе время суток, дамы и господа! Помогите вот с какой проблемой: делаю с "ребенком" (9 класс) проект по информатике, проект представляет собой визуализатор графиков различных функций (линейная, квадратичная, степенная и т.д.), столкнулся с проблемой - не могу запрограммировать степенную функцию y=(аx+b)^1/2 при х < 0 код крашится. Я понимаю, что в данном случае корень из отрицательного числа дает мнимое число, которое может иметь бинарное значение + или -, но как это сделать в VBA и правильно отобразить на графике на могу додуматься. Заранее спасибо. Файл проекта прилагаю. Проблемный участок кода прилагаю:
Код
'Степенная y=ax^1/2
If Cells(3, 1) = "Степенная y=(ax+b)^1/2" Then
For i = 3 To 9 Step 1
Cells(5, i) = Sqr(Cells(8, 4) * Cells(4, i) + Cells(8, 5))
Next i
End If
Сравнение данных с выведением несоответствия в ячейку, Сравнить два столбца с данными (число и текст) и вывести несоответствия в ячейке через запятую или "/"
artyrH, ммм да, Вы правы, MS Excel 2016 не понимает "IF", понимает только "ЕСЛИ". Сейчас попробовал, при полном переводе ошибка не воспроизводится. Век живи - век учись, помрешь дураком...
Сравнение данных с выведением несоответствия в ячейку, Сравнить два столбца с данными (число и текст) и вывести несоответствия в ячейке через запятую или "/"
Сравнение данных с выведением несоответствия в ячейку, Сравнить два столбца с данными (число и текст) и вывести несоответствия в ячейке через запятую или "/"
Сравнение данных с выведением несоответствия в ячейку, Сравнить два столбца с данными (число и текст) и вывести несоответствия в ячейке через запятую или "/"
Доброе время суток, дамы и господа! Прошу Вашей помощи вот в каком вопросе: есть 2 столбца (файл с примером прилагаю) с перечнем показателей (могут быть как числа так и текст) и эти значения надо сравнить по столбцам, причем значения из второго столбца, отсутствующие в первом столбце должны выводиться в ячейку через запятую или "/". Данные в столбцах будут меняться, столбцы будут дополняться строками. Мне удалось "как то" это решить, но смотрится очень топорно и не универсально. Я понимаю что универсально можно решить макросом, но политика безопасности нашей организации не позволяет использовать макросы в функциональных подразделениях, по-этому требуется решение формулами. Буду очень благодарен если пнете в нужное направление. Заранее спасибо.
Доброе время суток, дамы и господа! Прошу помощи вот в каком вопросе: Есть таблица с данными (прилагаю), к этим данным необходимо прикрутить динамическую диаграмму по отдельным показателям (располагаются по строке B8:J8) за ряд лет с 2017 по 2031 (A9:A23). Перечень показателей выведен в список напротив строки "Получить диаграмма" и связан с ячейкой А3, выбор показателя, соответственно, осуществляется списком. Собственно проблема, что через функцию =СМЕЩ(Свод!$A$9:$A$23;ПОИСКПОЗ(Свод!$A$3;Свод!$A$9:$A$23;0), присвоив ее как имя "_name" и вбив в "выбрать данные" диаграммы мне выдает ошибку, хотя в примере (прилагается, лист Пример) мне удалось реализовать ее, но только по строкам, если я такой же функцией пытаюсь сделать по столбцам выдает ошибку.Подозреваю, что ошибаюсь в записи функции. В рабочей таблице (лист "Свод") мне не удалось реализовать даже по строкам. Я понимаю что это можно реализовать через макрос, но у нас в организации, в целях безопасности, макросы отключены корпоративной политикой, поэтому просьба решение макросами не предлагайте. Заранее спасибо.
Господа, всем спасибо! Решение найдено (помогли на http://www.excelworld.ru/forum/10-37926-1) Собственно вот само решение, макрос на открытие и идентичный на закрытие формы
Скрытый текст
Private Sub Workbook_Open() With Sheets(1).Range("A:A") Set r = .Find(Date) If Not r Is Nothing Then If IsEmpty(r.Offset(0, 2)) Then r.Offset(0, 2) = Time End If End If End With End Sub
Доброе время суток, господа. Помогите по следующему вопросу. Есть форма ведения отработанного времени (прилагаю, внимание есть макрос), хотелось бы реализовать автоматизацию ведения учета рабочего времени, но не могу сообразить как заставить макрос вставлять время открытия формы в столбце "3" на текущую дату и соответственно время при закрытии формы в столбец "5" при закрытии формы кнопкой (в идеале при выключении компьютера с сохранением внесенных изменений). (тема дублируется на http://www.excelworld.ru/forum/10-37926-1) Заранее спасибо.
Слэн, спасибо большое, Ваш вариант очень подошел. Сергей, дополнительный лист не подходит, матрица планируется динамичной, но спасибо за оперативное решение.
Господа, прошу прощения, ввел в заблуждение, решение от Слэн работает только в том случае если значение ячейки менее 255 символов, в противном случае выдает ошибку #Н/Д, т.е. часть текстового совпадения искать не хочет. Еще раз извините, но вопрос остается открытым. Может быть как то макросом можно решить?
Доброе время суток, господа. Появилась проблема - есть двумерный массив, в котором нужно найти значение на пересечение строки и столбца (пример прилагаю). Поиск ведется по заголовкам столбцов и первым ячейкам строк, значения в них текстовые. Задача была решена при помощи функций ИНДЕКС и ПОИСКПОЗ, однако оказалось, что у ПОИСКПОЗ есть ограничения на количество символов (пример в файле), к сожалению это ограничение сводит на "нет" преимущества формулы, а сократить текстовую часть нет возможности, она должна находиться в неизменном виде. Подскажите пожалуйста как можно реализовать поиск при описанных условиях, буду рад любым решениям и макросам и формулам. Заранее спасибо