- Сообщения
- 24 092
- Реакции
- 12 876
В личку сможет, как и задуманоТам даже ответить никто не сможет.
В личку сможет, как и задуманоТам даже ответить никто не сможет.
Даже пытаться не буду. Я создал тему в автоматизации, чтобы получить совет и подсказку и сделать самостоятельно.В личку сможет, как и задумано
Это не конкретно про васДаже пытаться не буду
Ваше право, просто не обращайте внимания, такие "полезные" советы неизбежны, поэтому в том разделе и закрыты комментарии.чтобы получить совет и подсказку и сделать самостоятельно
Как правило, если "подскажите" не работает, то "научите как" – задача более сложная, чем "сделайте"Даже пытаться не буду. Я создал тему в автоматизации, чтобы получить совет и подсказку и сделать самостоятельно.
Вот это дело! Но есть Нюанс. Объекты упрощать всеже нужно попарно, т.к. корел очень часто лепит какую-то чушь при упрощении нескольких объектов одновременно.Application.FrameWork.Automation.Invoke "7da36c72-627c-4782-b51a-01718a43551b" 'Simpify
а чем этот Invoke отличается от s.Trim(s2, true, true)Application.FrameWork.Automation.Invoke "7da36c72-627c-4782-b51a-01718a43551b" 'Simpify
а чем этот Invoke отличается от s.Trim(s2, true, true)
тоже самое попарно перебрать и он упростит.
Sub RIs()
Dim sr As ShapeRange
Dim peresech As shape
Dim i As Integer, j As Integer
Set sr = ActiveSelectionRange
For i = 1 To sr.Count - 1
For j = i + 1 To sr.Count
Set peresech = sr(i).intersect(sr(j))
If Not peresech Is Nothing Then
Application.FrameWork.Automation.Invoke "7da36c72-627c-4782-b51a-01718a43551b" 'Simpify
End If
Set peresech = Nothing
Next j
Next i
Set sr = Nothing
End Sub
Sub RIs()
Dim sr As ShapeRange
Dim peresech As Shape
Dim i As Integer, j As Integer
Set sr = ActiveSelectionRange
For i = 1 To sr.Count - 1
For j = i + 1 To sr.Count
Set peresech = sr(i).Intersect(sr(j))
If Not peresech Is Nothing Then
sr.CreateSelection
Application.FrameWork.Automation.Invoke "7da36c72-627c-4782-b51a-01718a43551b" 'Simpify
End If
peresech.Delete
' Set peresech = Nothing
Next j
Next i
' Set sr = Nothing
End Sub
Ну надо же! забыл про выделение! спасибовнимательно смотрите за руками ...
вот вы сделали Set peresech = sr(i).intersect(sr(j))
ваше пересечение стало активным - выделилось
сколько потом его не упрощай - проще оно не станет. Нет?
Вы же хотите sr упростить? Это раз.
А во-вторых - полученный intersect никуда не делся. Его надо трансклюкировать.
вот- подкрашенное - испытайте
Код:Sub RIs() Dim sr As ShapeRange Dim peresech As Shape Dim i As Integer, j As Integer Set sr = ActiveSelectionRange For i = 1 To sr.Count - 1 For j = i + 1 To sr.Count Set peresech = sr(i).Intersect(sr(j)) If Not peresech Is Nothing Then sr.CreateSelection Application.FrameWork.Automation.Invoke "7da36c72-627c-4782-b51a-01718a43551b" 'Simpify End If peresech.Delete ' Set peresech = Nothing Next j Next i ' Set sr = Nothing End Sub