Я недавно установил самые последние обновления для Office 365 на мой компьютер (Windows 10 64-bit).С тех пор в Excel 2016 я заметил странную вещь: в строке состояния не отображается полное пользовательское сообщение, которое я отображаю на нем.Когда файл открывается впервые, он отображается нормально, но после внесения изменений он не отображает все сообщение, а вместо этого показывает «...», где должна быть последняя пара символов.В строке состояния все еще достаточно места для остальной части моего сообщения, поэтому я не могу понять, почему это происходит.
Я создал новый файл, чтобы посмотреть, связано ли это сконкретная рабочая тетрадь, над которой я работал.Он сделал это и с новым файлом, поэтому проблема, похоже, связана с самим Excel.Я искал в Интернете решение, но не смог ничего найти.Я даже написал на нескольких других форумах об этом, но не получил ответа, поэтому подумал, что попробую здесь.(См. В конце моего сообщения ссылки на эти другие сообщения на форуме.)
Вот краткое изложение того, что происходит в моем тестовом файле, а также ссылка на сам файл.
Когда я впервые открываю свой тестовый файл, он показывает сообщение в строке состояния, как и должно быть. StatusBarPic1
Я сделал так, чтобы отображаемое сообщение менялось в зависимости от значения в ячейке A1.При открытии ячейка A1 пуста.Затем я поместил в него значение, и строка состояния изменилась так, как и должна была. StatusBarPic2
Затем я удалил значение в ячейке A1, и строка состояния должна была вернуться к тому же состоянию, которое было при первом открытии файла.Однако это не так.Он не отображал бы последние два символа, а вместо этого отображал "..." StatusBarPic3
Кто-нибудь знает, почему он это делает?Кажется странным, что при первом открытии рабочей книги это сообщение будет отображаться нормально, но не будет отображаться точно такое же сообщение после использования файла.
Вот ссылка для загрузки тестового файла, если выхотел бы проверить это самостоятельно.Мне было бы интересно услышать, если это не делает это на других версиях Excel.Может быть, это что-то новое для недавнего обновления Excel 2016?
Тестовый файл Excel
Наконец, вот сообщения, которые я сделал на других форумах по этой же проблеме. Ссылка на сообщение на форумах Mr. Excel Ссылка на сообщение на форумах VBA Express
РЕДАКТИРОВАТЬ: согласно запросу, вот код, который я поместил в свой тестовый файл.
In Sheet1 Module:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.StatusBar = MessageToDisplay
End Sub
In ThisWorkbook Module:
Private Sub Workbook_Open()
Application.StatusBar = MessageToDisplay
End Sub
In Module1 Модуль:
Function MessageToDisplay() As String
Dim ValueCellA1 As String
ValueCellA1 = ThisWorkbook.Sheets("Sheet1").Range("A1").Value
MessageToDisplay = "This is a test to see how long of a message can be displayed on the status bar. I have noticed in Excel 2016 (most current version) that there seems to be a limit. The value of Cell A1 is: " & ValueCellA1
End Function
InВ книге, над которой я работаю, в конце строки, которую я записываю в строку состояния, у меня нет пустого места, но я все равно получаю «...» вместо двух последних символов моего сообщения..
Я прошел по коду и поместил строку с сообщением в окно просмотра.В конце кода я сделал скриншот окна просмотра.Вот самый конец строки. Watchlist image
Тем не менее, вот что отображается в строке состояния. Изображение строки состояния
В этой конкретной книге пользователь решает, какие данные отображать в строке состояния, установив некоторые флажки.Вот код, который определяет, что на самом деле отображается в строке состояния.Ни в коем случае строка MessageToDisplay никогда не должна иметь пробела в конце.
If .Range("Options_StatusBar_ShowTotal1").Value = "YES" Then
MessageToDisplay = "Total1: " & Total1
FirstPartWritten = True
End If
If .Range("Options_StatusBar_ShowTotal2").Value = "YES" Then
If FirstPartWritten = False Then
MessageToDisplay = "Total2: " & Total2
FirstPartWritten = True
Else
MessageToDisplay = MessageToDisplay & " " & "Total2: " & Total2
End If
End If
If .Range("Options_StatusBar_ShowTotal2Var").Value = "YES" Then
If FirstPartWritten = False Then
MessageToDisplay = "Total2 Var: " & Total2Var
FirstPartWritten = True
Else
MessageToDisplay = MessageToDisplay & ", Var: " & Total2Var
End If
End If
If .Range("Options_StatusBar_ShowTotal3").Value = "YES" Then
If FirstPartWritten = False Then
MessageToDisplay = "Total3: " & Total3
FirstPartWritten = True
Else
MessageToDisplay = MessageToDisplay & " Total3: " & Total3
End If
End If
If .Range("Options_StatusBar_ShowTotal3Var").Value = "YES" Then
If FirstPartWritten = False Then
MessageToDisplay = "Total3 Var: " & Total3Var
FirstPartWritten = True
Else
MessageToDisplay = MessageToDisplay & ", Var: " & Total3Var
End If
End If
Кроме того, сообщение, которое я пытаюсь отобразить, определенно не должно превышать 255 символов.