在文本框中输入特定文本,并在其他单元格中添加+1

问题描述 投票:0回答:1

我是新手,但是现在我陷入了困境。我试图实现的一件事是,如果我在文本框中添加一个特定的单词,另一个单元格将获得+1(因此,如果0且文本已在文本框中输入,则它会变为1,依此类推)。因此例如:

单元格B2 =苹果

单元格H2:B2的值

[如果可能,我希望获得一个或两个文本框,我可以在其中输入产品类型,而另一个框用于输入金额。

提前感谢。

excel vba textbox
1个回答
0
投票

确定。这是一个解决方案。

  1. 设置命名范围。我在一列中输入了5种不同的水果,在相邻列中输入了5种不同的数量(无关紧要,但必须相邻)。我将范围命名为“产品”,但其他任何名称也可以。
  2. 我设置了数据验证列表。我使用了G3单元格,但其他任何单元同样适用。我将数据验证列表指向=INDEX(Products,0,1),这表示Products范围的第一列。
  3. 现在我将代码添加到工作表中。该代码必须在G3所在的worksheet的代码表中。该代码表的名称类似于Sheet1(Sheet1)。不要使用名称为Module1之类的标准代码模块。这是代码。

    Private Sub Worksheet_Change(ByVal目标作为范围) '018

    Const Trigger = "G3"                ' change to suit
    Dim Qty As Long
    
    With Target
        If .Address = Range(Trigger).Address Then
            On Error Resume Next            ' in case not found
            Qty = Application.VLookup(.Value, Range("Products"), 2, False)
            .Offset(0, 1).Value = Qty + 1
        End If
    End With
    

    结束子

注意,Trigger单元格命名为“ G3”。这必须是您具有数据验证下拉菜单的单元格。

只要更改Trigger,此代码就会运行。在此处进行选择,VLOOKUP函数将在Products范围的第2列中找到数量。如果在列表中未找到该项目,它将返回0,但您可以设置单元格验证以防止输入不在列表中的项目。该代码将在找到的数量上加一,并在.Offset(0, 1)中发布结果,这意味着Trigger单元格右侧的一列。

您可能想用您的想法做其他事情。我认为我建议的系统可以适应您的想法,包括更改Products列表中的数量。

© www.soinside.com 2019 - 2024. All rights reserved.