проблема с добавлением кнопки в VBA - PullRequest
0 голосов
/ 11 августа 2010

Я пытаюсь создать в своей таблице кнопку со следующим кодом

Dim btnSaver As Object

Set btnSaver = Workbooks(1).Worksheets("Results").OLEObjects.Add(ClassType:="Forms.CommandButton.1")

Я также пытался

Set btnSaver = Workbooks(1).Worksheets("Results").OLEObjects.Add("Forms.CommandButton.1")

Я получил первое сообщение, что в данный момент не могу войти в режим прерыванияи я нажимаю «продолжить» и получаю ошибку, определенную приложением или объектно-определенной ошибкой - когда я запускаю его из Excel (когда я запускаю его снова с отладчиком, он говорит, что индекс находится за пределами диапазона).

Я проверил код вдругая электронная таблица, и она работает (она говорит, что не может программно изменить проект vb или что-то вроде этого, но кнопка, тем не менее, создана).

1 Ответ

0 голосов
/ 11 августа 2010

Только когда вы проходите по коду в редакторе, вы получите приглашение «Не могу войти в режим прерывания в это время».Это не ошибка, это просто говорит вам, что вы не можете вручную остановить код в этой строке.

Другие ошибки - из-за неправильного синтаксиса в вашем синтаксисе.У вас всего несколько строк кода, поэтому я не уверен, что не так.Вы можете попробовать что-то вроде этого:

Sub Test()

    Dim obj As OLEObject
    Dim wk As Workbook
    Dim ws As Worksheet

    Set wk = Application.ActiveWorkbook
    Set ws = wk.ActiveSheet

    'if manually stepping through this line, it will show
    '"Can't Enter Break Mode at this Time" | Click Continue
    Set obj = ws.OLEObjects.Add(ClassType:="Forms.CommandButton.1")

    obj.Left = 48
    obj.Top = 24
    obj.Width = 72
    obj.Name = "btn1"
    obj.Object.Caption = "Test Button"

End Sub
...