2010-03-04 36 views

回答

0

爲什麼不創建兩個對象,一個是鎖定的矩形,另一個是未鎖定的文本框?這非常簡單,但是可能的答案。

另一個想法是讓矩形等於一個單元格,並讓他們在單元格中輸入文本,即使在矩形鎖定時它也會傳輸。

0

據我所知,Excel不包含形狀事件,因此沒有簡單的方法檢測形狀大小的變化,然後調整形狀。

可以通過使用替代方法模擬您要求的內容。

想象一下,您的電子表格中有兩個矩形叫做「矩形1」和「矩形2」。當用戶完成更新任何給定框中的文本時,他們必須單擊電子表格以移出形狀的「編輯」模式。您可以使用Workbook_SheetSelectionChange事件檢測到此情況。

以下模塊允許您設置矩形爲常量的大小,並調整相應的矩形:

Const Rect1Height As Integer = 50 
Const Rect1Width As Integer = 200 

Const Rect2Height As Integer = 50 
Const Rect2Width As Integer = 200 

Sub SetRectangleSize() 

Dim Rect1 As Shape 
Dim Rect2 As Shape 

Set Rect1 = ActiveSheet.Shapes("Rectangle 1") 
Set Rect2 = ActiveSheet.Shapes("Rectangle 2") 

Rect1.Height = Rect1Height 
Rect1.Width = Rect1Width 
Rect2.Height = Rect1Height 
Rect2.Width = Rect1Width 

End Sub 

現在,所有你需要做的就是從一個工作簿級事件調用此子:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 
SetRectangleSize 
End Sub 

每次用戶更新他們會點擊後面的電子表格和事件上矩形的一個文本被觸發,導致矩形根據恆定的高度,並且您已經定義寬度等參數的尺寸設計。

相關問題