VBA - Проблемы с выделением при вызове из другого модуля - PullRequest
0 голосов
/ 17 апреля 2019

Я столкнулся с проблемой при попытке вызвать модуль из другого модуля. Код, который я выполняю, следующий

Sub deleteLine()
Dim list As Worksheet
Dim counter As Long
Set list = ThisWorkbook.Sheets("List")
counter = list.Cells(list.Rows.Count, "E").End(xlUp).Row - 1
If counter = 0 Then
MsgBox ("Why?")
Else:
list.Range("A" + CStr(counter + 1)).EntireRow.Delete
End If
CreateDiagram
list.Select
End Sub

Теперь строки в "CreateDiagram", которые вызывают ошибку, выглядят так:

Dim dia As Worksheet
Set dia = ThisWorkbook.Sheets("Diagram")
    dia.Shapes.SelectAll
    Selection.ShapeRange.TextFrame2.TextRange.ParagraphFormat.Alignment = msoAlignCenter
    Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
    Selection.Group
    dia.Range("A1").Select

Теперь я не понимаю, что когда я пытаюсь выполнить CreateDiagram напрямую, он работает просто отлично. Есть идеи, откуда может возникнуть ошибка?

1 Ответ

1 голос
/ 17 апреля 2019

Я управляю этим

dia.Shapes.SelectAll
Selection.ShapeRange.TextFrame2.TextRange.ParagraphFormat.Alignment = msoAlignCenter
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.Group
dia.Range("A1").Select

... и это не вызывает ошибку.

Если , фигуры уже были сгруппированы в предыдущем выполнении. В этом случае Selection.Group даст вам:

Run-time error 438: Object doesn't support this property or method

Итак, убедитесь, что ваши фигуры сначала не сгруппированы, а затем выбраны и сгруппированы, должны решить вашу проблему.

Dim dia As Worksheet
Set dia = ThisWorkbook.Worksheets("Your worksheet's name")
dia.Shapes.SelectAll
Selection.Ungroup
dia.Shapes.SelectAll
Selection.ShapeRange.TextFrame2.TextRange.ParagraphFormat.Alignment = msoAlignCenter
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.Group
dia.Range("A1").Select
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...