В Visio Professional 2016 я пытаюсь назначить строковую переменную, которая является полем из ComboBox, для метки вновь созданной строки в данных формы.
Код сначала проверяет, существует ли поле, и отображает окно сообщения, если это так.Если нет, код создаст новую строку в данных формы.Добавление имени работает нормально, как видно из этой строки.
vsoShape.Section(visSectionProp).Row(intNewPropRow).NameU = dataType
Однако, когда я пытаюсь добавить метку, я получаю #NAME?ошибка.
vsoShape.CellsSRC(visSectionProp, intNewPropRow, visCustPropsLabel).FormulaU = dataType
Входная переменная dataType представляет собой обычную строку.Я включил полную функцию ниже.Что я делаю не так?
Sub AddDataToSelectedShape(dataType As String)
Dim vsoShape As Visio.Shape
Set vsoShape = Application.ActiveWindow.Selection.PrimaryItem
If (vsoShape.CellExistsU("Prop.dataType", fExistsLocally) = True) Then
MsgBox ("The field is added already.")
Exit Sub
End If
If (vsoShape.CellExistsU("Prop.dataType", fExistsLocally) = False) Then
intNewPropRow = vsoShape.AddRow(visSectionProp, visRowLast, visTagDefault)
vsoShape.Section(visSectionProp).Row(intNewPropRow).NameU = dataType
vsoShape.CellsSRC(visSectionProp, intNewPropRow, visCustPropsLabel).FormulaU = dataType
vsoShape.CellsSRC(visSectionProp, intNewPropRow, visCustPropsType).FormulaU = "0"
vsoShape.CellsSRC(visSectionProp, intNewPropRow, visCustPropsFormat).FormulaU = ""
vsoShape.CellsSRC(visSectionProp, intNewPropRow, visCustPropsLangID).FormulaU = "1033"
vsoShape.CellsSRC(visSectionProp, intNewPropRow, visCustPropsCalendar).FormulaU = ""
vsoShape.CellsSRC(visSectionProp, intNewPropRow, visCustPropsPrompt).FormulaU = ""
vsoShape.CellsSRC(visSectionProp, intNewPropRow, visCustPropsValue).FormulaU = ""
vsoShape.CellsSRC(visSectionProp, intNewPropRow, visCustPropsSortKey).FormulaU = ""
Application.EndUndoScope UndoScopeID1, True
End If
End Sub