Добрый день, уважаемые специалисты. помогите с разрешением проблемы.
На листе находится четыре фигуры-кнопки с определенным вписанным в них текстом. Правее находятся столбцы с заголовками - соответствующими тексту, вписанному в фигуры.
Как макросом - занести в ячейку D2 - случайный текст из того столбца, который соответствует тексту в нажатой фигуре. (К примеру - если нажимается первая кнопка с текстом "Текст-12" - то в ячейку D2 выбирается случайный текст из столбца с заголовком "Текст-12".) (пустые ячейки в столбцах - игнорируются)
Добрый день, уважаемые специалисты. помогите с разрешением проблемы.
На листе находится четыре фигуры-кнопки с определенным вписанным в них текстом. Правее находятся столбцы с заголовками - соответствующими тексту, вписанному в фигуры.
Как макросом - занести в ячейку D2 - случайный текст из того столбца, который соответствует тексту в нажатой фигуре. (К примеру - если нажимается первая кнопка с текстом "Текст-12" - то в ячейку D2 выбирается случайный текст из столбца с заголовком "Текст-12".) (пустые ячейки в столбцах - игнорируются)RipVanWinkel
On Error Resume Next With ActiveSheet s = .Shapes(Application.Caller).TextFrame2.TextRange.Characters.Text Set r = .Cells.Find(s, LookIn:=xlValues, lookat:=xlWhole).CurrentRegion If Not r Is Nothing Then With r.Offset(1).Resize(r.Rows.Count - 1) Range("D2").Value = .Item(Int(.Rows.Count * Rnd + 1), 1) End With Else MsgBox "not found " & s, 48 End If End With End Sub
[/vba] на все 4 кнопки нужно назначить это макрос
или вот как-то так: [vba]
Код
Sub ertert() Dim s$, r As Range
On Error Resume Next With ActiveSheet s = .Shapes(Application.Caller).TextFrame2.TextRange.Characters.Text Set r = .Cells.Find(s, LookIn:=xlValues, lookat:=xlWhole).CurrentRegion If Not r Is Nothing Then With r.Offset(1).Resize(r.Rows.Count - 1) Range("D2").Value = .Item(Int(.Rows.Count * Rnd + 1), 1) End With Else MsgBox "not found " & s, 48 End If End With End Sub
[/vba] на все 4 кнопки нужно назначить это макросnilem
iMrTidy, на листе несколько десятков столбцов. В них постоянно - то добавляются то удаляются данные (количество заполненных ячеек - постоянном меняется).
И каждый раз - при пересчете листа лезть в макрос и менять вручную диапазон - это очень тяжело. К тому же в следующую секунду - при пересчете - диапазон опять изменится (поскольку будут добавлены или удалены те или иные ячейки)
iMrTidy, на листе несколько десятков столбцов. В них постоянно - то добавляются то удаляются данные (количество заполненных ячеек - постоянном меняется).
И каждый раз - при пересчете листа лезть в макрос и менять вручную диапазон - это очень тяжело. К тому же в следующую секунду - при пересчете - диапазон опять изменится (поскольку будут добавлены или удалены те или иные ячейки)RipVanWinkel