2013-12-08 65 views
0

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

我对VBA代码一无所知(在研究之后,我怀疑我必须写),所以请“轻蔑”您的答案!

非常感谢!

+0

查表?使用VLOOKUP? – BLUEPIXY

回答

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
  • Ri GHT单击“Microsoft Excel对象”树的VBA窗口
  • 点击“插入”的左侧,然后“模块”
  • 现在,双击在它默认为“模块1”
  • 树中的新模块
  • 将此代码粘贴到右侧的空白屏幕上
  • 将光标置于文本的某处(Sub和End Sub之间的任意位置),然后按F5运行。
  • 现在你可以回去Excel并创建一个按钮,并将其链接到您的宏(我会离开这个由你来研究:-)

你会用提示几个输入框是这样的:

enter image description here

enter image description here

如果你的数据是这样的:

enter image description here

你输入的价格编号 “DEF” 和 “8” 你现在看到这一点:

enter image description here

+0

确保您复制您的工作簿进行测试,因为宏没有撤消!提供的错误检查有限。很多这将取决于您的数据。 –

+0

非常感谢!明天我会在工作中尝试一下,让你知道结果!您为我节省了大量时间,并显着降低了数据录入错误的余量!我感谢你的回应。 – Pam

相关问题