excel 添加Vlookup + Vlookup w/ active cell

8yoxcaq7  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(91)

我再一次在这里看看是否有人愿意帮助我这个问题。我提前感谢大家。


的数据
看看上面的图片,我们有表1和表2,他们代表2个不同的表,为了这个解释的目的,我在同一张表中,但在现实中,它将在2 spearate表。
所以基本上我需要一个删除代码,当我按下红色按钮时,代码从单元格C11中取出100,添加到单元格I11(请注意,I11在不同的工作表中),然后删除单元格C11和E11中的所有内容。
由于只有一个按钮将用于多行,我在某个地方读到过,你可以使用一个叫做“活动单元格”的东西来避免为每行创建一个按钮。
所以这是我想简单地添加这两个的代码,但我不知道如何将其放入可执行代码中以使用“activecode”运行。
第一个月
这就是如果按钮正常工作的结果:



我会很感激,如果有人可以向我解释如何将activetable与vlookup代码一起在那里,关于擦除单元格我用过它,所以我可以查找它。
再次提前感谢。

3phpmpom

3phpmpom1#

请尝试使用下一个代码。您可以从已有的按钮调用它,或者将其复制为相应的代码:

Sub updateQuantity()
  Dim rng As Range, ws2 As Worksheet, rngItem As Range
  
  Set rng = ActiveCell
  If rng.cells.count > 1 Then MsgBox "You need to select only ONE CELL...": Exit Sub
  If rng.column <> 1 Then MsgBox "The active cell must be in A:A column...": Exit Sub
  
  Set ws2 = rng.Parent.Next ' Set the second worksheet
                            ' in this code it is the next sheet after the one keeping active cell
                            
  Set rngItem = ws2.Range("A:A").Find(What:=rng.value, LookAt:=xlWhole) 'find the Item in the second sheet
  If Not rngItem Is Nothing Then 'if the item has been found:
     'add the existing value in I:I (found range row) with the one from C:C column (activecell row)
     ws2.cells(rngItem.Row, "I").value = ws2.cells(rngItem.Row, "I").value + rng.Offset(, 2).value
     rng.Offset(, 2).Resize(, 3).ClearContents 'clear content of C:E columns of the active cell row
  Else
     MsgBox "No any match for item """ & rng.value & """ has been found in """ & _
           ws2.name & """ sheet..."
  End If
End Sub

字符串
如果你有一个ActiveX类型的按钮,在它的Click事件中写入updateQuantity。如果它是一个Form按钮,将上面的宏赋予它。
如果有什么不清楚的,不要犹豫,要求澄清。

相关问题