【问题标题】:Replacing value in different worksheet替换不同工作表中的值
【发布时间】:2021-01-21 03:46:15
【问题描述】:

我有一个问题,似乎无法解决。我花了几个小时尝试修复它,但我似乎无法通过错误。可能你修复起来真的很简单。

如果你能帮助我,那就太棒了。我需要一个 VBA 代码来用不同工作表中的值替换值 X(使用 vlookup 找到的单元格)。

在工作表中:Voorraadmutatie doorvoeren 我在单元格 D4 中有一个值,它与工作表 Voorraadbeheer stelling(en) 中的位置相对应(见图)。 p>

单元格 D16 中的值是 股票,因此激活宏后数据库中的股票需要更改。但是,要找到要更改的正确单元格,我需要查找正确的行/单元格。

Sheet voorraadmutatie doorvoeren

Sheet Voorraadbeheer stelling(en)

如果你能帮助我,那就太棒了。我尝试了很多东西,但我没有接受过使用 VBA 的培训。我不断收到错误,似乎无法通过在互联网上浏览来解决。

提前谢谢你。

【问题讨论】:

    标签: vba replace find vlookup


    【解决方案1】:

    我希望这个例子能有所帮助

      Sub vLookup()
     
        Dim SearchedValue, oldStock, newStock As Variant
        Dim MyMatrix As Range
        Dim No_index_col As Single
        Dim ApproximateValue As Boolean
        Dim n As Long
        
        ' SearchedValue = "D002"
        SearchedValue = ThisWorkbook.Sheets("voorraadmutatie doorvoeren").Range("D4")
        ' new stock in D16
        newStock = ThisWorkbook.Sheets("voorraadmutatie doorvoeren").Range("D16")
        
        Set MyMatrix = ThisWorkbook.Sheets("voorraadbeheer stelling(en)").Range("A:C")
        No_index_col = 3
        ApproximateValue = False
        ' display the previous vlue of the stock
        oldStock = Application.WorksheetFunction.vLookup(SearchedValue, MyMatrix, No_index_col, ApproximateValue)
        
        n = 2 '2nd ligne of the matrix
        Do While Not (IsEmpty(ThisWorkbook.Application.Sheets("voorraadbeheer stelling(en)").Cells(n, 1)))
    
            If ThisWorkbook.Application.Sheets("voorraadbeheer stelling(en)").Cells(n, 1) = SearchedValue Then
     
                ThisWorkbook.Application.Sheets("voorraadbeheer stelling(en)").Cells(n, 3) = ThisWorkbook.Sheets("voorraadmutatie doorvoeren").Range("D16").Value
     
            End If
            ' next line
            n = n + 1
        Loop
        End Sub
    

    【讨论】:

    • 非常感谢!通过上面的例子,我得到了更多。 msgbox 显示了我需要用单元格 D16 中的新数量替换的数量/数量。现在我仍然需要弄清楚如何将 msgbox 中的值的地址替换为单元格 D16 中的值。
    • 而不是 msgBox 添加ThisWorkbook.Sheets("Sheet voorraadmutatie doorvoeren").Range("D16").Value = Application.WorksheetFunction.vLookup(SearchedValue, MyMatrix, No_index_col, ApproximateValue)
    • 你太棒了。非常感谢杰辛。这正是我想要的。
    • 好的。不知何故,第一次测试成功了。现在它运行错误的方式。它将数据从 vlookup 返回到 D16,而 D16 的值必须放在 vlookup 找到的单元格中。我知道我在这方面很糟糕,正在努力学习
    • 我在代码中添加了一些修改来替换矩阵中stok的新值(见上)
    猜你喜欢
    • 1970-01-01
    • 2018-11-12
    • 2023-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多