Ошибка Excel VBA во время вставки при добавлении новой информации - PullRequest
0 голосов
/ 08 января 2019

Я использую приведенный ниже код VBA, чтобы скопировать строку над кнопкой на листе и вставить эту копию, когда кнопка находится непосредственно над строкой. Его цель - вставить новую строку для пользователя, чтобы добавить информацию о шаге в документ управления проектом.

По какой-то причине, когда я добавляю информацию в одну из строк над этой скопированной строкой, я получаю сообщение об ошибке в указанной строке. Ошибка

ошибка времени выполнения '1004: метод вставки класса диапазона завершился неудачей.

Если я закончу и снова нажму кнопку, я получу

ошибка времени выполнения '1004': невозможно получить свойство TopLeftCell класса Button.

Если я выключу Excel и снова открою его, кнопка будет работать нормально. Я обычно добавляю все нужные мне строки, вводю данные, но когда я добавляю новую строку, эта серия ошибок снова появляется.

Есть ли причина для этого или есть лучшие практики кодов, которые помогут мне избежать этой проблемы?

Кроме того, я только что заметил, что, по-видимому, должен быть открыт другой рабочий лист, чтобы произошла ошибка.

 Sub rowselect()
      Dim b As Object, cs As Integer
      Dim Row2 As Integer
      Dim Row As Integer

      Set b = ActiveSheet.Buttons(Application.Caller)
      With b.TopLeftCell ' 2nd error when code attempted again. Excel must be shut down for code to run properly
             Row = .Row - 1
             Row2 = Cells(Row, "e")
      End With

      Rows(Row).Select
      Selection.Copy
      Selection.Insert shift:=xlDown 'First error thrown here
      Cells(Row + 1, "e") = Row2 + 1
      Selection.EntireRow.Hidden = False
  End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...