VBA 如何根据同一行中其他两个单元格的内容编辑单元格内容
VBA how do I edit cell contents based on contents of two other cells in same row
我需要帮助创建一个宏来清理一个 csv sheet,其中包含产品销售信息,包括需要使用的运输方式。我们大约有 10 种产品无法通过我们通常的运输方式发送,我需要覆盖分配给包含这些产品的订单的运输方式。
- A 列是订单号
- B 列是购买的产品
- C栏是送货方式
如果有人在一个订单中购买了多个产品,订单号在下一行重复,送货方式仅显示在带有该订单号的第一行,并且在同一订单中连续购买的每个产品只添加一个新行B列中的产品名称
我需要使用 VBA 检查 B 列中大约 10 个特定产品的列表,并更新整个订单的运输方式(C 列中最上面的单元格具有相同的值在单元格 A) 中,如果它包含这 10 种产品中的一种。
我认为它需要做这样的事情:
- 查看 B 列并搜索一串文本
- 如果单元格符合搜索条件,请查看同一行中 A 列中的值
- 在 A 列中找到该值的第一个实例
- 将同一行B列中的内容替换为新的送货方式
我需要在一个循环中使用它,以便它为传播中 B 列中搜索字符串的每个实例执行此操作sheet。
我希望这个问题很清楚,我已经搜索过了,但找不到这个问题的答案。欢迎任何帮助或替代修复。
尝试以下代码,给出以下屏幕截图中的设置和结果:
Sub test()
Dim pRange As Range
Dim nShip As Range
Set pRange = Range("E2")
pRange.Select
While ActiveCell.Value <> ""
Range("B2").Select
While ActiveCell.Value <> ""
If ActiveCell.Offset(0, -1).Value <> ActiveCell.Offset(-1, -1).Value Then
Set nShip = ActiveCell.Offset(0, 1)
End If
If ActiveCell.Value = pRange.Value Then
nShip.Value = pRange.Offset(0, 1).Value
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Wend
Set pRange = pRange.Offset(1, 0)
pRange.Select
Wend
End Sub
首发名单:
宏后的结果:
我需要帮助创建一个宏来清理一个 csv sheet,其中包含产品销售信息,包括需要使用的运输方式。我们大约有 10 种产品无法通过我们通常的运输方式发送,我需要覆盖分配给包含这些产品的订单的运输方式。
- A 列是订单号
- B 列是购买的产品
- C栏是送货方式
如果有人在一个订单中购买了多个产品,订单号在下一行重复,送货方式仅显示在带有该订单号的第一行,并且在同一订单中连续购买的每个产品只添加一个新行B列中的产品名称
我需要使用 VBA 检查 B 列中大约 10 个特定产品的列表,并更新整个订单的运输方式(C 列中最上面的单元格具有相同的值在单元格 A) 中,如果它包含这 10 种产品中的一种。
我认为它需要做这样的事情:
- 查看 B 列并搜索一串文本
- 如果单元格符合搜索条件,请查看同一行中 A 列中的值
- 在 A 列中找到该值的第一个实例
- 将同一行B列中的内容替换为新的送货方式
我需要在一个循环中使用它,以便它为传播中 B 列中搜索字符串的每个实例执行此操作sheet。
我希望这个问题很清楚,我已经搜索过了,但找不到这个问题的答案。欢迎任何帮助或替代修复。
尝试以下代码,给出以下屏幕截图中的设置和结果:
Sub test()
Dim pRange As Range
Dim nShip As Range
Set pRange = Range("E2")
pRange.Select
While ActiveCell.Value <> ""
Range("B2").Select
While ActiveCell.Value <> ""
If ActiveCell.Offset(0, -1).Value <> ActiveCell.Offset(-1, -1).Value Then
Set nShip = ActiveCell.Offset(0, 1)
End If
If ActiveCell.Value = pRange.Value Then
nShip.Value = pRange.Offset(0, 1).Value
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Wend
Set pRange = pRange.Offset(1, 0)
pRange.Select
Wend
End Sub
首发名单:
宏后的结果: