excelperfect 這是一位朋友碰到的應(yīng)用場(chǎng)景:我們必須創(chuàng)建很多形狀來顯示每個(gè)形狀所覆蓋的單元格中的文本值,有時(shí)這些單元格和/或形狀會(huì)移動(dòng),。如果手動(dòng)檢查每個(gè)形狀并將其重新鏈接到其各自的單元格引用,,非常耗時(shí)。此時(shí),,VBA可以來幫助我們,。 工作表示例如下圖1所示。 圖1 接著,,我們創(chuàng)建一些形狀(這里是文本框)并將它們放置在包含文本的單元格之上,如下圖2所示,。 圖2 按Alt+F11打開VBE,,插入一個(gè)標(biāo)準(zhǔn)模塊,輸入下面的代碼: Sub ShapeReference() Dim sh As Shape Dim varShFormula As Variant For Each sh In ActiveSheet.Shapes Set varShFormula = ActiveSheet.Shapes.Range(Array(sh.Name)) varShFormula.Select Selection.Formula = '=' & sh.TopLeftCell.Address Next sh End Sub 代碼遍歷工作表中的形狀,,將變量varShFormula定義為正在處理的形狀對(duì)象公式,,然后選擇該變量對(duì)象,并將位于形狀左上角的單元格引用值賦給該形狀公式,。 注意,,如果將 varShFormula.Select Selection.Formula = '=' &sh.TopLeftCell.Address 合并成: varShFormula.Formula = '=' &sh.TopLeftCell.Address 將返回錯(cuò)誤。 運(yùn)行ShapeReference過程,,形狀上顯示其覆蓋的單元格中的文本值,,如下圖3所示。 圖3 我們將形狀重新放置到新的位置,,如下圖4所示,。 圖4 重新運(yùn)行ShapeReference過程,更新形狀中的內(nèi)容,,結(jié)果如下圖5所示,。 圖5 注:本技巧學(xué)習(xí)整理自www.sumproduct.com,供有興趣的朋友參考。 歡迎在下面留言,,完善本文內(nèi)容,,讓更多的人學(xué)到更完美的知識(shí)。 歡迎到知識(shí)星球:完美Excel社群,,進(jìn)行技術(shù)交流和提問,,獲取更多電子資料,并通過社群加入專門的微信討論群,,更方便交流,。
|
|