Я пытаюсь создать скрипт с кнопкой «удалить инструмент». Инструмент займет 5 строк. Таким образом, мой код удалит 5 строк при нажатии кнопки X, а также удалит кнопку X, потому что она больше не нужна.Excel VBA - использовать Application.Caller для получения сотовых координат для изображения
Единственная проблема, с которой я столкнулся, - это как найти адрес ячейки изображения, которое было нажато? Ниже приведен код, который я начал использовать.
Sub DeleteRow()
Dim Check As Integer
Dim r As Range
Dim m As Picture
Dim strCallerTyp As String
strCallerTyp = TypeName(Application.Caller)
Select Case strCallerTyp
Case "String"
Check = MsgBox("Are you sure you want to remove this tool?", vbYesNoCancel, "Delete Tool")
If (Check = 6) Then
MsgBox Sheets("sheet1").Shapes(Application.Caller).TopLeftCell '*THIS LINE*'
End If
Case "Error"
MsgBox "Error"
End Select
End Sub
Почему эта строка (с пометкой в коде):
MsgBox Sheets("sheet1").Shapes(Application.Caller).TopLeftCell
открывает окно сообщения, которое говорит "Excel" вместо координат?
TIA!
Я голосую это просто потому, что я был на 100% не осведомлен о свойстве «Shape.TopLeftCell». Супер удобный! –
@ DanWagner Это очень полезный инструмент в VBA! Он возвращает ячейку, в которой расположен верхний левый угол вашего объекта. –