Благодаря Raystafarian я избавляюсь от оставшейся ячейки остатка проверки данных, удаляя все из рабочей книги перед выходом.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.ScreenUpdating = False
    'Delete all drop down lists
    For Each ws In ActiveWorkbook.Worksheets
        For Each shp In ws.Shapes
            If shp.Name Like "Drop Down *" Then
                shp.Delete
            End If
        Next shp
    Next ws
    Sheet1.Activate
    Application.ScreenUpdating = True
End Sub
=================
Оригинальный вопрос
Я сталкиваюсь с досадной ошибкой в Excel VBA. Смотрите этот скриншот. Я использую лист Excel в качестве формы ввода пользователя. В форме у меня есть несколько мест, где я ставлю Проверка данных. После того, как пользователь нажал Enter, я использовал этот бит кода для очистки формы.
For Each a In Sheets("frmBienNhan").Range("C5:K31")
    If a.Locked = False Then
        a.Value = ""
    End If
Next a
После запуска кода несколько раз появляются эти чертовы стрелки. Это похоже на выпадающий список проверки данных, но при нажатии на него список становится пустым. Я не могу выбрать ячейку за ним. Я не могу удалить его, даже если я использую команды «Очистить все проверки» или «Очистить все» в Excel. Это не имеет большого значения, но это раздражает пользователя, потому что ему приходится перемещать курсор в эту ячейку с помощью клавиатуры, иначе они не могут выбрать настоящий выпадающий список проверки данных.
Любые мысли или опыт по этой ошибке приветствуются.



