excel vba 在B列中单元格中输入代码,在相应的A列和C列中输入产品名和单位。

2024-11-29 01:28:19
推荐回答(4个)
回答1:

Private Sub Worksheet_Change(ByVal Target As Range) '如果填写,则改变颜色。
Dim sh As Range, d As Range
With Target
If .Cells.Count = 1 And .Column = 2 And Len(.Text) > 0 Then
Set sh = Sheets("产品库").Range("B:B")
Set d = sh.Find(.Value, LookIn:=xlValues, Lookat:=xlWhole)
If Not d Is Nothing Then
.Offset(0, 1).Value = d.Offset(0, 1).Value
.Offset(0, -1).Value = d.Offset(0, -1).Value
Else
.Offset(0, 1).Value = "找不到该产品编码"
.Offset(0, -1).Value = "找不到该产品编码"
End If
End If
End With
End Sub

回答2:

把产品库列重设一下产品代码放在最前面,这样用VLookup就可以实现了

回答3:

假设原两列数据为A B 两列添加辅助列,C C1输入公式 =COUNTIF(B:B,A1) 向下填充,然后自动筛选选择C列值大于0的行即可 ...举例:如果两列为B列C...

回答4:

你这里错误有好几个.
Target 返回的是一个集合,activecell也一样.
变量不定义就用,虽然不能说是错误,但这样不好.
range前面没对象,这是谁的range?或者你这样用的时候没错,但实际上这么写是错的,
公式没看,不知道有没错.

关键是,单是这么点功能,不用写宏吧?