我需要从Visio绘图上的形状中获取修改后的形状数据,然后将它们插回原始的外部数据文件中。在这种情况下,外部数据将是Excel电子表格。
我知道如何在VB中阅读Shape Data和Shapesheet信息。
但是,我需要帮助在VBA中查找外部数据源的原始文件和位置。这是我唯一坚持的事情。有什么想法吗?
编辑:
我发现DataConnection.ConnectionString接近但没有雪茄。它给了我完整的连接字符串,如果没有'Mode = Read;',我可以重复使用它来打开与Excel文件的连接。在字符串中。
除非有人有更好的解决方法,否则我想我可以删除'Mode = Read;'退出连接字符串,看看我是否可以从那里开始。
答案 0 :(得分:0)
去看看,我花了几个小时在Google上寻找答案,在发布问题后10分钟我找到了DataConnection对象后想出来。
答案是使用DataConnection.FileName返回原始外部数据文件的路径和文件名。
For Each win In Visio.ActiveWindow.Windows
' The External Data window has ID = 2044
If win.ID = 2044 Then
win.Visible = True
strDataSourceFileName = win.SelectedDataRecordset.DataConnection.FileName
Exit For
End If
Next win
答案 1 :(得分:0)
您可以尝试我最近发布的Visio插件(允许回写): http://visguy.com/vgforum/index.php?topic=6086
源代码可在github上找到: https://github.com/nbelyh/VisioBackSync