如果将文本输入特定单元格,则右侧单元格会自动填充文本

时间:2013-12-08 16:09:55

标签: excel excel-vba vba

我希望有人可以提供帮助! 我正在制定包含零件编号的价格指南。几个相同的部件号与不同的产品相关联,因此它们出现在整个价格指南的不同位置。我发现了一些我忘记更新某些单元格的实例。如果可能的话,我希望Excel自动执行此操作。 例如,如果我在列B中输入部件号ACH,在电子表格的任何行中,我希望C列自动填充$ 100.00。 这可能吗? C10可能只是试图消除数据输入错误并依赖Excel公式或代码来帮助我。

我对VBA代码一无所知(经过研究,我怀疑我不得不写),所以请“愚蠢”回答你的答案!

非常感谢你!

1 个答案:

答案 0 :(得分:0)

下面是一个宏,它会提示您输入要搜索的部件号和要输入的价格。它将在B列中搜索该部件号,并用新价格替换C列中的相邻价格。

Sub ReplacePrice()
    lastRow = Range("B1").End(xlDown).Row

    Dim searchRng As Range
    Set searchRng = Range("B1:B" & lastRow)


    Dim partNum As String

    partNum = InputBox(Prompt:="Enter Part Number to Search For: ", _
          Title:="ENTER PART NUMBER", Default:="Your PN here")

    ' Check for invalid input
    If partNum = "Your PN here" Or partNum = vbNullString Then
        Exit Sub
    End If


    Dim price As String

    price = InputBox(Prompt:="Enter price: ", _
          Title:="ENTER PRICE", Default:="Your price here")

    ' Check for invalid input
    If price = "Your price here" Or price = vbNullString Then
        Exit Sub
    End If


    ' Finds each matching part number in col B and replaces adjacent price in col C
    For Each cell In searchRng
        If cell.Value = partNum Then
            cell.Offset(0, 1).Value = price
        End If
    Next cell
End Sub

如何使用此代码:

  • 启用开发人员标签(文件 - >选项 - >自定义功能区 - >检查右侧面板上的'开发人员' - >确定
  • 现在点击您的开发者标签(位于视图标签右侧)
  • 现在点击功能区最左侧的VBA
  • 右键单击VBA窗口左侧树中的“Microsoft Excel对象”
  • 点击“插入”,然后点击“模块”
  • 现在双击树中默认为“模块1”
  • 的新模块
  • 将此代码粘贴到右侧的空白屏幕中
  • 将光标放在文本中的某个位置(Sub和End Sub之间的任何位置),然后按F5运行。
  • 现在您可以返回Excel并创建一个按钮并将其链接到您的宏(我会留给您研究: - )

系统会提示您输入以下几个输入框:

enter image description here

enter image description here

如果您的数据如下所示:

enter image description here

您输入“DEF”表示零件编号,输入“8”表示您现在看到的价格:

enter image description here