1 / 1 / 0
Регистрация: 08.05.2024
Сообщений: 20
|
|
1 | |
Excel Как определить номер строки, где находится кнопка макроса?18.10.2024, 09:01. Показов 500. Ответов 10
Добрый день.
Подскажите пожалуйста как определить номер строки, на которой находится кнопка? По нажатию кнопки мне необходимо определять строку, в которой она находится. ActiveSheet.Shapes(1).TopLeftCell.Address Конкретный индекс передать не могу, потому как рисуется много кнопок при каждом формировании файла. Есть ли способы как для активной ячейки только для активной фигуры узнать какие-то данные? Или может есть какие другие способы узнать эту информацию?
0
|
18.10.2024, 09:01 | |
Ответы с готовыми решениями:
10
В матрице определить минимальный элемент и номер строки, где он находится Как определить номер строки, на которой находится выделенный текст? как определить номер строки, в которой находится самая длинная серия одинаковых элементов? Определить номер строки и номер столбца матрицы X(5,6), на пересечении которых находится наибольший по абсолютной величине элемент. |
Модератор
|
|
18.10.2024, 09:12 | 2 |
а зачем нужна кнопка - достаточно клика на ячейке с текстом ЭТИКЕТКА
или даже ГАЛОЧКА, чтобы выбрать группу строк и все вместе распечатать, может даже и в нужном количестве экземпляров
0
|
1634 / 416 / 120
Регистрация: 13.11.2008
Сообщений: 840
|
|
18.10.2024, 09:24 | 3 |
Изучайте Applcation.Caller:
Кто вызвал функцию или процедуру?
0
|
1 / 1 / 0
Регистрация: 08.05.2024
Сообщений: 20
|
|
18.10.2024, 09:42 [ТС] | 4 |
Кнопка рисуется макросом только там где надо. Просто я умею только кнопки делать.
Applcation.Caller выдает "Прямоугольник: скругленные угл", но я с этой информацией ничего сделать не могу прикладного.
0
|
1634 / 416 / 120
Регистрация: 13.11.2008
Сообщений: 840
|
||||||
18.10.2024, 09:57 | 5 | |||||
Статью по ссылке тоже прочитать не осилили? Там вроде вполне понятно описано, что с этим делать.
Плохо, что у Вас не хватило смекалки даже с подробным описанием определить, что делать с предложенным вариантом. Подсказка:
0
|
1 / 1 / 0
Регистрация: 08.05.2024
Сообщений: 20
|
|
18.10.2024, 10:08 [ТС] | 6 |
читаю, но не совсем понимаю почему у меня не работает код, скопированный из статьи
Выдает ошибку еще на этой строке Set rFuncCell = Application.Caller 'ячейка с функцией
0
|
1634 / 416 / 120
Регистрация: 13.11.2008
Сообщений: 840
|
||||||
18.10.2024, 10:20 | 7 | |||||
да уж...Там ведь в самом начале прям почти Ваш случай описан - с применением кнопок и макросов на них. А Вы зачем-то взяли код из вот этой части:
И там ниже в статье приведен список с пояснениями, что вернет функция в том или ином случае. Тоже должен был хоть какие-то мысли прояснить. Исходя из всего этого вопрос: Вы макрос как вызываете - кнопкой? Или зачем Вам тогда определять положение кнопки? Я даже код выше привел, чтобы у Вас мысли появились - видимо, это не тот случай, когда даже прямой намек даст результат. Но тогда непонятно, почему Вы не прикладываете ни свой код, ни свой файл - чтобы Вам прямо на Ваших данных показали вариант решения? Сами себе усложняете жизнь.
Но это должно быть внутри кода, который вызывается каждой кнопкой напротив ячейки - тогда и будет определено имя именно той кнопки, которая была нажата для вызова макроса.
1
|
1 / 1 / 0
Регистрация: 08.05.2024
Сообщений: 20
|
|
18.10.2024, 11:04 [ТС] | 8 |
есть файл, который формирует задание на работу и во время формирования этого списка к каждой строке макросом формируется автоматически кнопка к строке и автоматом назначается ей другой макрос. Этот макрос уже должен определять текущую строку, в которой находится эта кнопка и запускать печать этикеток. Если бы это все было фиксировано, то у меня даже вопросов бы не возникло.
С Caller просто еще никогда не работала, поэтому с одного щелчка не понимаю что да как. Пытаюсь разобраться. Вызывается из процедуры обычного модуля. К сожалению у меня еще не такой уровень познания VBA Помогите пожалуйста осилить задачку. Вот у меня этот макрос назначается на кнопки, которые автоматически создаются в нужных строках. По первым двум строкам он все выдает адреса, но это если мы знаем конкретный индекс фигуры. Но я то не знаю. Мне вот в это значение индекса нужно передать переменную с индексом нажатой кнопки. Куда мне нужно прописать Caller, чтобы это заработало?
0
|
1634 / 416 / 120
Регистрация: 13.11.2008
Сообщений: 840
|
||||||
18.10.2024, 11:25 | 10 | |||||
Сообщение было отмечено Nura55 как решение
Решение
Не нужно. К фигурам можно обращаться по имени, а не обязательно по индексу.
Не хочу полстатьи сюда перецитировать - поэтому и дал ссылку. Будет желание разобраться детальнее, чтобы знать где грабли лежат - перечитаете более вдумчиво(может быть когда чуть опыта наберетесь). Без Вашего файла и полного кода - остается только гадать куда записывать, что за имена у Ваших Shapes и как к ним можно обратиться. У Вас же есть MsgBox, который показывает Applciation.Caller. Что там отображается? Есть такая фигура на листе? А понимает ли VBA это имя? В статье о таком тоже упоминается - VBA не всегда понимает локальное имя фигур по умолчанию - чаще всего ему нужно внутреннее имя фигуры(оно на английском). Поэтому, раз уж кнопки создаются кодом - задавайте кнопкам там же сразу имена, чтобы VBA не толковал их двояко. Только смотрите, чтобы имена кнопок не повторялись на одном листе, иначе можно получить неверный адрес ячейки. В итоге у Вас должно быть что-то вроде этого:
1
|
1 / 1 / 0
Регистрация: 08.05.2024
Сообщений: 20
|
|
18.10.2024, 12:55 [ТС] | 11 |
Да, так получилось реализовать задуманное.
При формировании кнопок сразу назначала названия со сменой индексов в названии и по ним уже получилось понять номер нужной строки. Спасибо всем за помощь. Новую информацию обязательно приму к подробному изучение
0
|
18.10.2024, 12:55 | |
18.10.2024, 12:55 | |
Помогаю со студенческими работами здесь
11
Определить номер области, где находится точка Получить номер строки где находится искомое слово Номер строки, где находится минимальный элемент матрицы Номер строки при нажатии в Memo, где находится курсор Определить номер области, где находится точка с заданными координатами Найти квадрат максимального элемента и номер строки и столбца, где он находится Присвоить значение наименьшего элемента массива переменной М1, номер строки, где находится этот элемент, - переменной Т, номер столбца - переменной С Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |