基于复选框指定行范围

时间:2015-09-11 14:28:22

标签: excel vba checkbox copy-paste

所以我已经在互联网上搜索了这个小宏观,但我没有运气弄清楚我做错了什么。我知道答案很简单,但它确实超出了我的范围。目标是让一个复选框从单独的工作表中插入多行,如果取消选中该复选框,则删除这些相同的行。复制和插入功能工作正常,但我不知道如何写行要删除的行范围。下面的代码显然不正确,因为rngD被指定用于测试。 rngD应该是复选框下方的7行,或者可能有更好的方法。非常感谢您查看此内容,我对任何建设性的批评持开放态度。

在Excel 2013中工作

Sub Insert_LL()

    Dim ws As Worksheet
    Dim chkB As CheckBox
    Dim rngA As Range
    Dim rngD As Range
    Dim lRow As Long
    Dim lRowD As Long
    Dim llRows As Range

    Set llRows = Range("Lesson_Learned")
    Set ws = ActiveSheet
    Set chkB = ws.CheckBoxes(Application.Caller)
    lRow = chkB.TopLeftCell.Offset(1).Row
    lRowD = chkB.TopLeftCell.Offset(7).Row
    Set rngA = ws.Rows(lRow)
    Set rngD = ws.Rows("18:24") 'needs to specify the range of rows dependant where the checkbox is located'

    Application.ScreenUpdating = False

    Select Case chkB.Value
        Case 1
            llRows.Copy
            rngA.Insert Shift:=xlDown
        Case Else
            rngD.Delete
    End Select

    Application.CutCopyMode = False
    Application.ScreenUpdating = True

End Sub

0 个答案:

没有答案