Полоса прокрутки Excel 2010 заходит слишком далеко

1071
Guest

Моя проблема проиллюстрирована на PrintScreen ниже:

enter image description here

Я много искал в Интернете, и почти все источники говорят, чтобы удалить пустые строки в конце листа и сохранить документ. Например, это то, что предлагается здесь (см. Раздел 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 
2
Вы, вероятно, поставили диагноз своей собственной проблеме. Пользовательские макросы, вероятно, представляют собой пробелы, которые вы затем сбрасываете, используя технику по указанной вами ссылке. Никто не сможет помочь, если вы не покажете эти макросы как часть вопроса. Tyson 8 лет назад 0
@Tyson Я добавил коды макросов, которые я использую. Guest 8 лет назад 0

1 ответ на вопрос

0
Steve Taylor

What range are you calling that SortString function on? If it's looping through the entire sheet then that might explain your issue. Consider using a named range, or else embed a 'Count' function so it only runs on rows which have been populated.

Not going to ask about the Croissant...

Похожие вопросы