我需要使用几个旋转按钮添加/删除列和行

时间:2014-10-03 14:16:22

标签: excel vba excel-vba

我有一张工作簿,其中包含一些输入参数的位置(样本数,测量次数,部件号等),以及一个基于输入创建数据表的按钮。我已经设置了宏来添加一些旋转按钮来添加/删除样本数量并添加/删除测量数量。

我有旋转按钮链接到我想要更改的单元格,但我需要一些代码来检查该值是否更改(即用户想要添加/删除列或行)。我尝试了一个循环,但是失败了,最终导致我失去了半小时的代码崩溃。我是vba的新手,我很想完成这个宏。

我能做的另一个选择是使用带有单个宏的4个按钮,但我需要能够从该宏跳转到另一个宏的特定部分。这可能吗?

谢谢!

编辑:这是我从我收到的答案中编写的代码,但是我收到了错误:"对象变量或者没有设置块变量"。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim del As Boolean

If Not (Intersect(Target, Range("K1"))) Is Nothing Then
    If Cells(1, 11) > samples Then
        samples = Cells(1, 11)
        Application.Run ("samplechange")
    ElseIf Cells(1, 11) < samples Then
        del = Application.InputBox(prompt:="Are you sure you want to delete a sample column?      Enter True/False.", Title:="delete?", Type:=4)
        If del = True Then
            samples = Cells(1, 11)
            Application.Run ("samplechange")
        ElseIf del = False Then
            Cells(1, 11) = samples
        End If
    End If
End If

End Sub

1 个答案:

答案 0 :(得分:0)

要在单元格更改时运行代码,请在VB编辑器/宏编辑器中双击单元格所在的工作表,然后使用选择的顶部代码编辑区域中的下拉列表Worksheet和{{1} }。这将在代码区域中创建一个新的子例程,如下所示:

Change

Private Sub Worksheet_Change(ByVal Target As Range) End Sub 是更改的范围。您可以通过以下方式测试这是否是您关心的范围/单元格:

Target