我有一张工作簿,其中包含一些输入参数的位置(样本数,测量次数,部件号等),以及一个基于输入创建数据表的按钮。我已经设置了宏来添加一些旋转按钮来添加/删除样本数量并添加/删除测量数量。
我有旋转按钮链接到我想要更改的单元格,但我需要一些代码来检查该值是否更改(即用户想要添加/删除列或行)。我尝试了一个循环,但是失败了,最终导致我失去了半小时的代码崩溃。我是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
答案 0 :(得分:0)
要在单元格更改时运行代码,请在VB编辑器/宏编辑器中双击单元格所在的工作表,然后使用选择的顶部代码编辑区域中的下拉列表Worksheet
和{{1} }。这将在代码区域中创建一个新的子例程,如下所示:
Change
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
是更改的范围。您可以通过以下方式测试这是否是您关心的范围/单元格:
Target