Нужна помощь с кодом VBA, предназначенным для поиска текстовой строки поля в блоке заголовка на чертеже изобретателя и замены его части - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь изменить число чертежей из примерно 300+ чертежей (IDW) в изобретателе 2019. Проблема, с которой я сталкиваюсь с API, заключается в том, чтобы заставить его находить и изменять правильную строку.

Примером номера чертежа является 17-677-001, где 17-677 - номер задания, а 001 - произвольный идентификатор для этого чертежа. Я переворачиваю эти чертежи и хочу выполнить макрос, который можно выполнить в пакетном режиме, чтобы найти номер чертежа, содержащий 17-677, и заменить только деталь 17-677 на 19-085.

У меня есть код, который я пытался написать после прочтения об объектной модели, но я думаю, что пропустил несколько шагов в процессе. Способ установки титровального блока может быть частью проблемы. Под этим я подразумеваю, что номер чертежа находится не в текстовом поле в определении блока заголовка, а скорее в значении свойства, которое символически вызывается в блоке заголовка.

Пример. Имя свойства равно значению 17-677-001, которое необходимо изменить.

Код выглядит следующим образом

Sub replaceDwgNo()

Dim doc As DrawingDocument
Set doc = ThisApplication.ActiveDocument

Dim sheet As sheet
Set sheet = doc.ActiveSheet

Dim tb As TitleBlockDefinition
Set tb = sheet.TitleBlock.Definition

Dim sketch As DrawingSketch
Set sketch = tb.sketch

Call tb.Edit(sketch)

Dim curText As TextBox
Set curText = sketch.TextBoxes.Item(10)

If curText.Text = "<AES_MD_NAME>" Then
On Error Resume Next
curText.FormattedText = Replace(curText.FormattedText, "17-677", "19-085")

Call tb.ExitEdit

End If

End Sub

Имея это в виду, код, который я пытался написать, должен был найти это свойство в текущем чертеже, проверить, содержит ли значение этого свойства 17-677, и заменить только часть 17-677 на 19-085. При этом я не смог правильно написать код.

Проблема с этим кодом в том, что он ищет имя свойства в блоке заголовка и пытается изменить его вместо вызова его значения и изменения значения. Я не знаю, как это сделать, поскольку дальнейшие попытки привели к синтаксическим ошибкам и тому подобному. Я также могу предоставить копию IDW, которая потребует изобретателя 2019. Я не уверен, как прикрепить ее здесь. Большое спасибо за ваше время.

...