Запрос не отображается в Application.InputBox в Excel для Mac 15

Вот мой код:

Sub demo1()
    Dim Rng1 As Range
    Set Rng1 = Application.InputBox("The Prompt", "The Dialog Title", Type:=8)
End Sub

Вот результат в Excel для Windows (я также щелкнул ячейку, чтобы добавить ссылку):

введите здесь описание изображения

Вот результат в Excel для Mac (я щелкнул ячейку, как указано выше):

введите здесь описание изображения

Я использую версию 15. Просто я не вижу Подсказку в Excel для Mac. Некоторые исследования показывают, что люди могли использовать простой InputBox (вместо Application.InputBox) в качестве обходного пути, но мне нужна усиленная версия, потому что пользователю нужно щелкнуть диапазон ячеек, а установленная переменная должна быть объект диапазона. Обычный vb InputBox не может этого сделать. Спасибо заранее за любые предложения.


person David    schedule 29.06.2017    source источник


Ответы (2)


Я искал решение здесь повсюду, но не могу его найти. Кажется, диалоговое окно Mac просто не содержит двух отдельных разделов (заголовок + приглашение). Я создал обходной путь, который я опубликую, это может быть полезно, если у кого-то есть такая же проблема. Но если кто-то может придумать лучшее решение, я отмечу ответ.

Во-первых, мы проверяем, находимся ли мы на ПК или Mac с помощью этого:

On Error Resume Next
If Val(Application.Version) = Int(Val(Application.Version)) Then
    theOs = 0 'whole version number = PC
Else
    theOs = 1 'version number with decimal = Mac
End If
If Err.Number <> 0 Then
    Err.Clear
    theOs = 0
End If
On Error GoTo 0

Затем я использую подсказку, если мы на ПК, или заголовок, если мы на Mac, например:

theQ1 = "This is my prompt"
theQ2 = ""
If theOs = 1 Then
    theQ2 = theQ1
    theQ1 = ""
End If
Set Rng1 = Application.InputBox(theQ1, theQ2, Type:=8)

Для ПК это работает как обычно... для Mac подсказка находится вместо заголовка, поэтому пользователь все еще может понять, что запрашивается. Одним из важных недостатков является то, что строка заголовка более ограничена в пространстве, и мы не можем использовать разрывы строк.

person David    schedule 04.07.2017

Если это все еще имеет отношение к вашим потребностям, у меня была аналогичная проблема некоторое время назад, и я нашел решение, которое работает в удовлетворительной степени. Я изложил это здесь: Почему текст подсказки не отображается для моего поля ввода с помощью VBA в Excel для Mac?

person omannay    schedule 04.11.2017
comment
Хех, прочитайте последний абзац в моем первоначальном вопросе. Но спасибо, ваш вопрос и ответ мне помогли. - person David; 04.11.2017