簡體   English   中英

將按鈕和宏添加到最后一行

[英]Adding a button and macro to the last row

我正在為具有非常非常新手Excel用戶的一家小公司構建一個盤點電子表格。 因此,我想使用宏和VBA來完成大部分工作,以免因必須編輯公式或創建圖表而使他們不知所措。 在理想的世界中,他們會學到一些卓越的知識,但事實是這不會發生。

到目前為止,我有一個很好的用戶窗體,可以輕松進行輸入,並且一旦按下“提交”按鈕,它將把所有數據插入到第一行中的股票列表中。 但是,我也想在每行的末尾放置一個按鈕,以便他們隨后在出售某物品時可以按下。 我已經為此(“銷售”)編寫了一個宏,該宏減少了項目數量,將項目明細移動到已售出的工作表中,如果數量為零,則完全刪除該行。 我的問題是我無法獲取用戶表單的提交按鈕以將宏按鈕添加到可變行號中。

這是我到目前為止的內容:

    Dim LRow As Long
    Dim ws As Worksheet
    Dim rng As Range
    Set ws = Worksheets("Stock Warehouse")
    LRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    Set rng = ws.Cells(LRow, 23)

    With ws
    .Cells(LRow, 1).Value = Date
    .Cells(LRow, 2).Value = Me.CATEGORY.Value

     (---etc etc until---)

    .Cells(LRow, 21).FormulaR1C1 = "=Sum(rc[-1]/rc[-11])"

    rng.Select
    ws.Buttons.Add(rng.Left, rng.Top, rng.Width, rng.RowHeight).Select
    Selection.OnAction = "Sale"
    Selection.Characters.Text = "SALE"
    With Selection.Characters(Start:=1, Length:=4).Font
    .Name = "Lucida Grande"
    (---more formatting stuff---)
    End With

如果我將其設置為進入一個命名的單元格(即“ W5”),它將起作用並插入按鈕。 只是在LRow中插入一個按鈕,23太麻煩了! 這可能很簡單,但是我已經盯着這幾天了,無法弄清楚。

我運行了您的代碼,並插入了按鈕,但是最好避免選擇

    Set btn = ws.Buttons.Add(rng.Left, rng.Top, rng.Width, rng.RowHeight)
    With btn
        .OnAction = "Sale"
        .Characters.Text = "SALE"
        With .Characters.Font
            .Name = "Lucida Grande"
'        (---more formatting stuff---)
        End With
    End With

您是否考慮過讓一個按鈕停留在凍結窗格的上方,並且用戶在要刪除/處理/任何內容的行中選擇一個/任何單元格(您可以告訴/訓練它們中的哪個),然后按一下按鈕? 讓按鈕使用ActiveCell.Row檢測行(並進行適當的檢查),然后從那里開始工作。

我做過類似的事情,但這是兩個按鈕,它們根據選定的行移動,這樣用戶可以滾動數據,並且當他們選擇所需的行時這些按鈕就會顯示出來。 我將圖片用作按鈕,並為其分配了宏:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
With ActiveSheet.Pictures("Picture 2")
    .Top = Target.Offset(1).Top
    .Left = 930
End With
With ActiveSheet.Pictures("Picture 4")
    .Top = Target.Offset(1).Top
    .Left = 1005
End With
End Sub

它始終顯示在數據的右側並向下顯示1行,以免掩蓋我在其中存儲的任何注釋。

編輯:

使用此方法,如果用戶選擇了一堆行並通過使用Selection.Rows.Count並使用偏移量循環代碼來運行代碼,則還可以使其對選擇起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM