Я хотел бы использовать InputBox, чтобы установить данный параметр для изменения высоты строки таблицы в текущей позиции курсора или в выделенной области. Я мог бы сделать это, когда выделил мышкой многострочную строку, но я также хотел бы сделать то же самое, когда просто поместил свой курсор в определенную c единственную строку в таблице слов. Однако, когда дело доходит до таблицы с вертикально объединенными ячейками, я не мог этого сделать. VBA покажет сообщение об ошибке: Ошибка времени выполнения: «5991». Есть ли способ изменить высоту строки или ширину столбца в таблице с вертикальной и горизонтальной таблицей объединенных ячеек?
Вот сценарий, который я предлагаю:
Sub TableChangeSelectedRowHeight()
PromptBottom = "Input Row Height for Selection _________ mm"
HeaderTop = "Adjust Row Height"
UserData = InputBox(PromptBottom, HeaderTop)
Dim ToPoint As Single
ToPoint = Application.CentimetersToPoints(UserData / 10)
If StrPtr(UserData) = 0 Then
MsgBox "您取消輸入。"
ElseIf UserData = vbNullString Then
MsgBox "您沒有輸入資料。"
End
Else
If Selection.Information(wdWithInTable) = True And Selection.Rows.Count <> 1 Then 'for mutltiple row
Selection.Cells.SetHeight RowHeight:=ToPoint, _
HeightRule:=wdRowHeightAtLeast
ElseIf Selection.Information(wdWithInTable) = True And
Selection.Rows.Count = 1 Then 'for single row
aa = Selection.Cells(1).RowIndex
Selection.Rows(aa).SetHeight RowHeight:=ToPoint, _
HeightRule:=wdRowHeightAtLeast 'There are some problems here
Else
MsgBox "The insertion point is not in a table."
End If
End If
End Sub
sub появится следующее сообщение об ошибке:
Run time error:5991
Cannot access individual rows in the collection because the table has vertically merged cells.