首页 > 解决方案 > 将减少值从一张表增加到另一张表 VBA

问题描述

我有一张名为 Sheet3 的工作表,另一个是 Sheet4。Sheet3:A列标题是产品类型,B列是它们的数量,Sheet4具有相同的列标题。产品类型和数量。但是当我在 Sheet3 中运行下面的宏时,有时它们会正确地向 Sheet4 添加值,有时它们不能正常工作。

    Sub Increase_Value()

    Sheets("Sheet3").Select
    Cells.Find(What:=Sheet4.Range("A2").Value, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    Sheets("Sheet4").Select
    Range("A2").Select
    ActiveCell.Offset(0, 1).Activate
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet3").Select
    ActiveCell.Offset(0, 1).Activate
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
        False, Transpose:=False
    Range("E10").Select

        Sheets("Sheet3").Select
    Cells.Find(What:=Sheet4.Range("A3").Value, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    Sheets("Sheet4").Select
    Range("A3").Select
    ActiveCell.Offset(0, 1).Activate
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet3").Select
    ActiveCell.Offset(0, 1).Activate
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
        False, Transpose:=False
    Range("E10").Select
    
        Sheets("Sheet3").Select
    Cells.Find(What:=Sheet4.Range("A4").Value, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    Sheets("Sheet4").Select
    Range("A4").Select
    ActiveCell.Offset(0, 1).Activate
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet3").Select
    ActiveCell.Offset(0, 1).Activate
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
        False, Transpose:=False
    Range("E10").Select
    Sheets("Sheet4").Select
    Range("A2:B4").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("A2").Select
    ActiveWorkbook.Save
End Sub

例如:If Sheet3 Range A3 = **Coca Cola**, And B3 = **20**,当我朗读宏Increase_Value()时,VBA 应该在 Sheet4 列 A 中找到值Coca Cola ,如果在第 10 行 (A10) 中找到值,则将值 20 从 sheet3 Range B3 添加到 sheet4 Range B10。如果 B10 是 47,那么在运行宏之后它应该是 67。

标签: excelvba

解决方案


看起来您正在尝试做一些 vlookup 可以轻松解决的事情?您也可以在 VBA 中进行 vlookup

下面是确切的公式 -
'''Application.WorksheetFunction.vlookup(lookup_value, table_array, col_index_num, range_lookup)'''

您可以在此处找到更多信息: https ://excelmacromastery.com/vba-vlookup/

谢谢,


推荐阅读