excel - 将减少值从一张表增加到另一张表 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。
解决方案
看起来您正在尝试做一些 vlookup 可以轻松解决的事情?您也可以在 VBA 中进行 vlookup
下面是确切的公式 -
'''Application.WorksheetFunction.vlookup(lookup_value, table_array, col_index_num, range_lookup)'''
您可以在此处找到更多信息: https ://excelmacromastery.com/vba-vlookup/
谢谢,
推荐阅读
- opencv - 无法在 Hololens 上显示来自 openCV 的网络摄像头
- c - 如何在固定类型和浮动类型之间手动转换?
- maven - 使用 Maven 获取 axis-1.4 依赖项的完整列表
- c# - Asp.net core mvc ajax post到具有多个参数的控制器返回错误请求
- jenkins - 在 Jenkins 管道插件的拉取请求中未检测到更改
- django - django 在 Listview 中编辑记录
- java - 如何在骆驼中提取xpath列表
- php - 使用 xampp 时遇到服务器错误
- atom-editor - Atom - 从不同层次结构打开多文件夹项目
- sql - 我有一个符合统计的数据现在我想要一个符合我的数据库的数据