當前位置:編程學習大全網 - 編程軟體 - excel中VB編程,如何根據兩列的名稱,編號

excel中VB編程,如何根據兩列的名稱,編號

方法壹、用公式

C2=IF(B2<>"",IFERROR(VLOOKUP(B2,$B$1:C1,2,),MAX($C$1:C1)+1),IF(SUMPRODUCT(($B$1:B1="")*($A$1:A1=A2)),MAX(($B$1:B1="")*($A$1:A1=A2)*IF(ISNUMBER($C$1:C1),$C$1:C1,)),MAX($C$1:C1)+1))

數組公式,Ctrl+Shift+Enter結束。下拉

方法二、VBA

先看效果

在本sheet中放入如下代碼:(註意:Name1中不能有與Name2同名,否則可能導致排序錯誤,從妳這應該不會有同名)

Sub?test()

Dim?d,?arr,?rs,?i&,?k&,?m$,?n$,?x$

Set?d?=?CreateObject("scripting.dictionary")

arr?=?[A2].Resize([A65536].End(3).Row?-?1,?2)

rs?=?[C2].Resize([A65536].End(3).Row?-?1,?1)

k?=?1

For?i?=?1?To?UBound(arr)

m?=?arr(i,?1)

n?=?arr(i,?2)

x?=?IIf(n?<>?"",?n,?m)

If?Not?d.exists(x)?Then

d(x)?=?k

rs(i,?1)?=?k

k?=?k?+?1

Else

rs(i,?1)?=?d.Item(x)

End?If

Next

Set?d?=?Nothing

[C2].Resize([A65536].End(3).Row?-?1,?1)?=?rs

End?Sub

  • 上一篇:cad電路圖連線方式
  • 下一篇:怎麽在proe裏做出6個排列成圓形的螺紋孔
  • copyright 2024編程學習大全網