需要按钮以在Excel中启动特定操作

时间:2019-05-13 05:37:16

标签: excel vba

在一栏中,我有4个条目。其中2个属于一个类别“ TX”,另外两个属于“ SW”。

在单元格H12的下拉框中创建一个列表,选中后,您可以从列表中选择4个条目中的任何一个。

选中后,您可以在该单元格下面放置一个数字(H13)。单击一个按钮并选择一个“ TX”条目时,它将进入一个单元格(P2)。如果选择的条目是“ SW”,它将进入(Q2)。当用户更改数字或从下拉菜单中进行选择时,该数字将添加到该类别的上一个数字。

任何帮助将不胜感激,我尝试查看视频和教科书,但似乎无法为实现这一目标而wrap之以鼻。

谢谢

我已经尽力了。我与一些比我更了解这一点的朋友交谈,他们将我发送到此网站,因为它以前对他们有所帮助。由于我对VBA非常满意,因此我为自己的尝试表示歉意。

Private Sub CommandButton2_Click()

    If Range("SW").Text = Range("H12").Text Then
        Range("H13").Copy
        Range("Q2").PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks:=False, Transpose:=False

    ElseIf Range("TX").Text = Range("H12").Text Then
        Range("H13").Copy
        Range("P2").PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks:=False, Transpose:=False
    End If

End Sub

到目前为止,当我单击按钮时,什么都没有发生。谢谢

1 个答案:

答案 0 :(得分:0)

您应该可以执行以下操作:

Private Sub CommandButton2_Click()

    Dim v, sht As Worksheet

    Set sht = ActiveSheet

    v = sht.Range("H12").Text

    If ValueInNamedRange(v, sht, "SW") Then

        sht.Range("Q2").Value = sht.Range("H13").Value

    ElseIf ValueInNamedRange(v, sht, "TX") Then

        sht.Range("P2").Value = sht.Range("H13").Value

    End If

End Sub

'A function to check if a value "v" is in a given named range "rangename"
'   on sheet "sht"
Function ValueInNamedRange(v, sht As Worksheet, rangename As String)
    ValueInNamedRange = Len(v) > 0 And _
         Not IsError(Application.Match(v, sht.Range(rangename), 0))
End Function

编辑:修复了一些问题