Моя проблема проиллюстрирована на PrintScreen ниже:
Я много искал в Интернете, и почти все источники говорят, чтобы удалить пустые строки в конце листа и сохранить документ. Например, это то, что предлагается здесь (см. Раздел 2f).
Иногда это работает, но в большинстве случаев это не так!
Я не знаю, является ли это релевантной информацией или нет, но мой документ Excel содержит три пользовательских макроса, в том числе два, которые связаны с форматированием комментариев. На листе "Примечания А" много комментариев, большинство из них с рисунками в качестве фона. Кроме того, мой документ не защищен, поэтому я не думаю, что проблема в том, что лишние строки заблокированы.
Есть ли окончательное решение для этого?
Добавлено: вот коды моих трех макросов.
Модуль 1: Это макрос, который сортирует в алфавитном порядке строку букв слова. Например, применение его к ячейке, содержащей HELLO, даст EHLLO в качестве вывода.
Option Compare Text
Function SortString(ByVal iRange, Optional Croissant As Boolean = True)
'Trevor Shuttleworth, mpep, modifié fs, mpfe
Dim i%, j%, sTemp$
For j = 1 To Len(iRange) - 1
For i = 1 To Len(iRange) - 1
If Mid(iRange, i, 1) > Mid(iRange, i + 1, 1) Then
sTemp = Mid(iRange, i, 1)
Mid(iRange, i, 1) = Mid(iRange, i + 1, 1)
Mid(iRange, i + 1, 1) = sTemp
End If
Next
Next
If Croissant = False Then
For i = Len(iRange) To 1 Step -1
SortString = SortString & Mid(iRange, i, 1)
Next
Exit Function
End If
SortString = iRange
End Function
Модуль 2: Это макрос, который автоматически изменяет размер комментариев, содержащих слова.
Sub Fitrangecomments()
'Updateby20140325
Dim rng As Range
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each rng In WorkRng
If Not rng.Comment Is Nothing Then
rng.Comment.Shape.TextFrame.AutoSize = True
End If
Next
End Sub
Модуль 3: Это макрос, который просит пользователя выбрать фоновое изображение для создаваемого комментария и автоматически изменяет размер комментария в соответствии с размерами изображения.
Sub InsertComment()
Dim strImagePath As Variant
Dim objImage As Object
strImagePath = Application.GetOpenFilename("Picture, *.jpg; *.png; *.bmp")
If strImagePath = False Then Exit Sub
Set objImage = CreateObject("WIA.ImageFile")
objImage.LoadFile strImagePath
With ActiveCell
If .Comment Is Nothing Then .AddComment ("")
.Comment.Shape.Fill.UserPicture strImagePath
.Comment.Shape.Height = objImage.Height * 0.75
.Comment.Shape.Width = objImage.Width * 0.75
End With
End Sub