Поле ввода VBA неправильно отображает строку? - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь отобразить подсказку, используя функцию VBA InputBox. В текст InputBox я включаю строковую переменную имени файла, однако, когда я запускаю код, строка (называемая 'tempkey') отображается неправильно - часть строки в середине отсутствует.

Я вошел в отладчик и проверил содержимое строк 'tempkey' прямо перед передачей их в поле ввода. Значение строки просто не отображается правильно в InputBox.

            tempkey = Left(GetFilenameFromPath(files(i)), Len(GetFilenameFromPath(files(i))) - Len("xxxxmap.xlsx"))

            If Not dict.Exists(tempkey) Then
                entry = InputBox("Please enter a short descriptor for: " & vbNewLine & tempkey & vbNewLine & vbNewLine & "i.e. L5P-LM Post Thermal Cycle")
                If entry <> "" Then
                    dict(tempkey) = entry
                Else
                    Exit Sub
                End If
            End If

Строка 'tempkey' имеет длину около 109 символов и не содержит пробелов.

Вот как выглядит InputBoxнапример:

InputBox

Как вы можете видеть, все в строке 'tempkey' после 'seq' и до 'from' опущено в InputBox. .

Вот как выглядит мой отладчик со значением 'tempkey' непосредственно перед отображением InputBox:

DebugWindow

Почемустрока отображается неправильно?

1 Ответ

0 голосов
/ 04 ноября 2019

Строки InputBox ограничены 255 символами, поэтому я думаю, что именно в этом проблема.

Вы пробовали разбить tempkey на две отдельные строки?

Dim s1 As String
Dim s2 As String
s1 = Left(tempkey, Len(s) / 2)
s2 = Right(tempkey, Len(s) / 2)

entry = InputBox("Please enter a short descriptor for: " & vbNewLine & s1 & s2 & vbNewLine & vbNewLine & "i.e. L5P-LM Post Thermal Cycle")
...