Аргумент ошибки компиляции не является обязательным только для Ma c - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть рабочий лист Excel в Excel 2010 на Windows 10, который сбой на стороне моего клиента в Excel 2011 для Ma c из-за ошибки «аргумент не является обязательным» при нажатии на кнопку. Кроме того, он не работает на другом компьютере под управлением Office 365. Кажется, он выделяет символы в 6-й строке кода:

Sub Rectangle4_Click()

Dim xSelShp As Shape, xSelLst As Variant, I As Integer
Set xSelShp = ActiveSheet.Shapes(Application.Caller)
Set xLstBox = ActiveSheet.ListBox4

If xLstBox.Visible = False Then
    xLstBox.Visible = True
    xSelShp.TextFrame2.TextRange.Characters.Text = "SAVE"
Else
    xLstBox.Visible = False
    xSelShp.TextFrame2.TextRange.Characters.Text = "SELECT"
    For I = xLstBox.ListCount - 1 To 0 Step -1
        If xLstBox.Selected(I) = True Then
        xSelLst = xLstBox.List(I) & ";" & xSelLst
        End If
    Next I
    If xSelLst <> "" Then
        Range("R4") = Mid(xSelLst, 1, Len(xSelLst) - 1)
    Else
        Range("R4") = ""
    End If
End If
End Sub

Список, который он отображает / скрывает, представляет собой ActiveX ListBox.

Я сомневаюсь, что это уместно, но на листе 40 таких кнопок Rectangle, все с почти одинаковым кодом, просто переключение 4 ссылок.

Может кто-нибудь увидеть, что мне не хватает Вот? Или знаете что-нибудь о кроссплатформенных проблемах с таким кодом?

Спасибо.

1 Ответ

0 голосов
/ 06 мая 2020

В случае, если кто-то сталкивается с этим, похоже, что Тим был прав, и элементы управления ActiveX не работают на Ма c. Но они также не работали в Office 365. Я переключил это на управление формой и заставил все работать отлично на стороне моего клиента. Мой совет самому себе - работать с элементами управления с самого начала и избегать ActiveX любой ценой, если вы работаете над чем-то, что отправляете кому-то другому.

...