如何为VBA宏添加IF条件实现指定供应商价格上调
修改AUMENTAR宏实现指定供应商调价
以下是修改后的VBA代码,加入供应商匹配逻辑,仅对B列与G4单元格供应商编号一致的行,执行D列价格上调操作:
Sub AUMENTAR() Dim ws As Worksheet Dim lastRow As Long Dim supplierId As Variant Dim i As Long ' 指定操作的工作表,可根据实际需求修改 Set ws = ThisWorkbook.ActiveSheet ' 获取G4单元格的目标供应商编号 supplierId = ws.Range("G4").Value ' 获取B列数据的最后一行(假设表头在第1行,数据从第2行开始) lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row ' 遍历所有数据行 For i = 2 To lastRow ' 判断当前行B列是否匹配目标供应商编号 If ws.Cells(i, "B").Value = supplierId Then ' 此处保留你原宏的价格上调逻辑,示例为上调10%,可替换为你的原有代码 ws.Cells(i, "D").Value = ws.Cells(i, "D").Value * 1.1 End If Next i MsgBox "指定供应商调价完成!", vbInformation End Sub
关键修改说明:
- 提前将G4的供应商编号存入变量
supplierId,避免循环中重复读取单元格,提升执行效率 - 循环遍历数据行时增加
If条件判断,仅处理B列值与目标供应商编号匹配的行 - 原宏的价格上调逻辑(示例为按10%比例上调)被包裹在条件判断内部,确保只作用于匹配行
如果你的原宏有特定上调规则(比如固定金额上调、阶梯比例调整等),直接替换示例中ws.Cells(i, "D").Value = ws.Cells(i, "D").Value * 1.1这一行即可。
内容的提问来源于stack exchange,提问作者xChitaxu
相关产品推荐
相关产品推荐

