Мне удалось решить эту проблему и создать рабочий код вместо 25 экземпляров с одинаковыми строками, используя это:
Dim r As Variant
Dim v As Variant
v = Application.Caller
v = Replace(v, "Button ", "")
r = "A" & v
Чтобы сгенерировать все нужные мне диапазоны, изменив значение, содержащееся в rперед каждым диапазоном, чтобы иметь точный диапазон, в котором я нуждался, это позволило легко масштабировать проект.
Примечание: пример допустимого синтаксиса, использующего переменную для составления диапазона, будет:
это предполагает, что вы вызываете эту функцию через объект с именем «Кнопка x»
, где x - это число
Sub Button_Click()
Dim r As Variant
Dim v As Variant
v = Application.Caller
v = Replace(v, "Button ", "")
r = "A" & v
If IsEmpty(Range(r).Value) Then
MsgBox "Cell appears to be empty!"
Exit Sub
Else
MsgBox "cell " + r + " contains " + Range(r).Value
End If
End Sub
- Я использовал обозначение ячейки, сделанное с помощью буквы+ число ясно.
- Я использовал 2 переменные, потому что мне нужно было составить несколько диапазонов, и это позволило более чистую реализацию
- Я использовал переменные типа «вариант», полагая, что он должен быть совместим с различнымитипы данных в коде.
Примечание: это также работает для флажка, о котором я говорил в вопросе
iВ общем, это поможет создать повторно используемый код, который будет в состоянии знать, где будут располагаться ваши данные, в зависимости от имени, которое было назначено для кнопки, вызывающей его, а также при условии, что соглашение об именовании установлено и выполняется, а его приращение следуетправило в отношении увеличения диапазонов.
Спасибо @ EvR за помощь в отслеживании функции, которая позволила мне продолжить работу