OrgChart 向导通过 VBA 导出到 Visio 时出错
Error with OrgChart Wizard exporting to Visio via VBA
我正在尝试使用 OrgChart 向导通过 VBA 从 Visual Studio 导出 Visio 绘图。
首先,我们使用以下方法设置页面配置参数:
'/PAGES=<top employee> <num levels> PAGENAME=<pagename>,<top employee> <num levels> PAGENAME=<pagename>...
strPageConfig = " /PAGES=" & ListBox1.SelectedItem & " " & lvlNum & " PAGENAME=cleanedData"
然后我们将 excel 文件存储在一个名为 visExcelFile 的变量中。
接下来,我们创建了 OrgChart 向导:
visApp = CreateObject("Visio.Application")
visApp.visible = False
objAddOn = visApp.Addons.ItemU("OrgCWiz")
objAddOn.Run("/S-INIT")
添加组织结构图参数和运行向导:
orgWizArgs = " /FILENAME=" & visExcelFile & " /NAME-FIELD=Name" &
" /MANAGER-FIELD=Reports_To" & strPageConfig &
"/DISPLAY-FIELDS=Name, Title /SYNC-ACROSS-PAGES /HYPERLINK-ACROSS-PAGES"
objAddOn.Run("/S-ARGSTR " + orgWizArgs)
objAddOn.Run("/S-RUN")
visApp.visible = True
错误来自我们设置 strPageConfig 的行,特别是当从 ListBox1 读取名称时。当值中有任何空格时,我会弹出每个单词(2 或 3,因为它们是名称)说明:
Employee name "Smith" is not in your organization data.
Employee name "John" is not in your organization data.
我遗漏或忘记了什么导致空格导致此错误?
导致另一个问题的解决方法是,当我们将员工姓名加载到 ListBox1 中时,我们用 _ 替换了空格,但这些下划线出现在绘图中,这是我们不想要的。
所以我的问题是:
如何使用包含空格的数据 运行 来自 VBA 的 OrgChart 向导?
要么:
如何通过 VBA 进入这些对象并编辑 ShapeData 文本字段?
我在其他网站上看到类似的问题,但没有答案。
我也在使用 Visio 2013
您需要引用您的字符串,所以:
Public Function QuoteString(str as String) as String
Dim quotechar as String
quotechar = Chr(34)
QuoteString = quotechar & str & quotechar
End Function
strPageConfig = " /PAGES=" & QuoteString(ListBox1.SelectedItem) & " " & lvlNum & " PAGENAME=cleanedData"
我正在尝试使用 OrgChart 向导通过 VBA 从 Visual Studio 导出 Visio 绘图。
首先,我们使用以下方法设置页面配置参数:
'/PAGES=<top employee> <num levels> PAGENAME=<pagename>,<top employee> <num levels> PAGENAME=<pagename>...
strPageConfig = " /PAGES=" & ListBox1.SelectedItem & " " & lvlNum & " PAGENAME=cleanedData"
然后我们将 excel 文件存储在一个名为 visExcelFile 的变量中。 接下来,我们创建了 OrgChart 向导:
visApp = CreateObject("Visio.Application")
visApp.visible = False
objAddOn = visApp.Addons.ItemU("OrgCWiz")
objAddOn.Run("/S-INIT")
添加组织结构图参数和运行向导:
orgWizArgs = " /FILENAME=" & visExcelFile & " /NAME-FIELD=Name" &
" /MANAGER-FIELD=Reports_To" & strPageConfig &
"/DISPLAY-FIELDS=Name, Title /SYNC-ACROSS-PAGES /HYPERLINK-ACROSS-PAGES"
objAddOn.Run("/S-ARGSTR " + orgWizArgs)
objAddOn.Run("/S-RUN")
visApp.visible = True
错误来自我们设置 strPageConfig 的行,特别是当从 ListBox1 读取名称时。当值中有任何空格时,我会弹出每个单词(2 或 3,因为它们是名称)说明:
Employee name "Smith" is not in your organization data.
Employee name "John" is not in your organization data.
我遗漏或忘记了什么导致空格导致此错误?
导致另一个问题的解决方法是,当我们将员工姓名加载到 ListBox1 中时,我们用 _ 替换了空格,但这些下划线出现在绘图中,这是我们不想要的。
所以我的问题是: 如何使用包含空格的数据 运行 来自 VBA 的 OrgChart 向导? 要么: 如何通过 VBA 进入这些对象并编辑 ShapeData 文本字段?
我在其他网站上看到类似的问题,但没有答案。 我也在使用 Visio 2013
您需要引用您的字符串,所以:
Public Function QuoteString(str as String) as String
Dim quotechar as String
quotechar = Chr(34)
QuoteString = quotechar & str & quotechar
End Function
strPageConfig = " /PAGES=" & QuoteString(ListBox1.SelectedItem) & " " & lvlNum & " PAGENAME=cleanedData"