2013-01-18 48 views
0

我對VBA相當陌生。如何在Visio中使用VBA設置自定義單元屬性值?

我有一個具有數百個形狀的繪圖,並且它們都應用了相同的數據集。在這種情況下,假設我想將行「Prop.Row_5」中的值更改爲0001。

目前我有:

Sub Macro1() 
    Dim vsoPage As Visio.Page, vsoShape As Visio.Shape 
    Dim vsoStrng As String 

    For Each vsoPage In ThisDocument.Pages 
     For Each vsoShape In vsoPage.Shapes 
      vsoShape.CellsSRC(visSectionProp, 4, visCustPropsValue).FormulaU = "0001" 

     Next 
    Next 


End Sub 

這是幾種不同的方法我都試過了,似乎沒有任何工作之一。有人可以爲我清楚嗎?

+0

你從哪裏運行代碼?您是否針對特定的文檔,因爲「ThisDocument」將引用託管代碼的文檔。你有沒有檢查你是否真的碰到了CellSRC系列?添加一個斷點(點擊左邊空白處)......當你點擊斷點時,形狀引用是你期望的那個嗎? – JohnGoldsmith

回答

1

您的代碼應該工作,如果該屬性是一個數字,或者你可以把它沒有逗號,

Dim vsoPage As Page 
Dim vsoShape As Shape 

For Each vsoPage In ThisDocument.Pages 
    For Each vsoShape In vsoPage.Shapes 
     vsoShape.CellsSRC(visSectionProp, intRowNum, _ 
      visCustPropsValue).FormulaU = 1 
    Next 
Next 

但是,如果屬性是一個字符串,則必須使用三個逗號,像

 vsoShape.CellsSRC(visSectionProp, intRowNum, _ 
      visCustPropsValue).FormulaU = """0001""" 

這是因爲公式本身是一個字符串,只有在字符串中包含「」字符時纔會計算字符串。否則,如果查找名稱爲您輸入的字符串的變量,函數或單元格。

希望這可以幫助你。

Regards,

相關問題