2015-10-22 25 views
1

我在Excel中有一個宏,它在電子表格中插入一個新的預定義行。作爲該過程的一部分,它在最後一列中插入一個按鈕,該按鈕被編程爲運行宏以對該行執行特定操作。Get按鈕在Excel中移動單元格

通常需要對工作表進行排序以重新排列數據,但我發現當我這樣做時,按鈕不會隨其相關聯的行移動,並且操作變得混雜起來。

我已經嘗試將按鈕的屬性設置爲「XLMove」,但它不起作用 - 當數據排序後,按鈕將保持放置在其原始單元格中。

如何將按鈕定位到它們最初插入的單元格,以便排序也移動按鈕?

Dim btn As Button 
Set btn = ActiveSheet.Buttons.Add(1173, 257.25, 41.25, 23.25) 

With btn 
    .Placement = xlMove 
    .OnAction = "ButtonRow" 
    .Characters.Text = "Action!" 
    .Left = ActiveCell.Left 
    .Top = ActiveCell.Top 
End With 
+0

Excel的哪個版本?你的代碼適合我。 – Rory

+1

隨着你這樣做,它確實與我合作。您是否有可能將您固定按鈕的單元本身不包含在應用排序的範圍內? (ps. .:我在Excel 2007上測試過) –

+0

在Excel 2010上測試過它 - 很有效,不幸的是我錯誤地定義了排序範圍。 –

回答

1

嘗試

With btn 
    .Placement = xlMove 
    .OnAction = "ButtonRow" 
    .Characters.Text = "Action!" 
    .Left = ActiveCell.Left 
    .Top = ActiveCell.Top 
    ActiveSheet.Shapes(.Name).LockAspectRatio = msoTrue 
End With