«VBA CorelDraw «Переименуйте объект A-Z не по порядку»

Я создал скрипт для переименования объектов в CorelDraw в алфавитном порядке. Этот скрипт должен работать как положено, но я не знаю, почему последовательность от Z до A. На скриншотах слева показано, как код работает должным образом.

Sub RenameSelectedObjects()
    Dim i As Integer
    Const START_CHAR = 65 ' ASCII untuk 'A'
    Const END_CHAR = 90   ' ASCII untuk 'Z'
    Dim objCount As Integer
    Dim selectedShape As Shape
    
    i = 0
    objCount = ActiveSelectionRange.Count
    
    For Each selectedShape In ActiveSelectionRange
        If i > END_CHAR - START_CHAR Then Exit Sub
        selectedShape.Name = Chr(START_CHAR + i)
        i = i + 1
    Next selectedShape
End Sub

Но другое дело, если с этим скриптом у «Объекта в целом» все получится.

Sub RenameObjects()
    Dim i As Integer
    Const START_CHAR = 65 ' ASCII untuk 'A'
    Const END_CHAR = 90   ' ASCII untuk 'Z'
    
    i = 0
    For Each s In ActivePage.Shapes.All
        If i > END_CHAR - START_CHAR Then Exit Sub
        s.Name = Chr(START_CHAR + i)
        i = i + 1
    Next s
   
End Sub

Есть ли кто-нибудь, кто может помочь мне заставить скрипт работать только с выбранными объектами и поддерживать их порядок от А до Я?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  • Поскольку у меня нет программного обеспечения CorelDRAW, я не уверен, связана ли эта проблема с последовательностью, в которой пользователи выбирают несколько фигур.
  • Ссылаясь на ваш скриншот, код можно изменить следующим образом.
Sub RenameSelectedObjects()
    Dim i As Integer
    Const START_CHAR = 65 ' ASCII untuk 'A'
    Const END_CHAR = 90   ' ASCII untuk 'Z'
    Dim objCount As Integer
    Dim selectedShape As Shape
    i = 0
    objCount = ActiveSelectionRange.Count
    If objCount > END_CHAR - START_CHAR Then objCount = END_CHAR - START_CHAR ' **
    For Each selectedShape In ActiveSelectionRange
        selectedShape.Name = Chr(START_CHAR + objCount - i) ' **
        i = i + 1
        If i > END_CHAR - START_CHAR Then Exit Sub
    Next selectedShape
End Sub
stackoverflow.com/q/78302430/22404558 вы можете мне помочь, сэр?
redixid hkgraphics 10.04.2024 08:38

Другие вопросы по теме