當前位置:成語大全網 - 書法字典 - VBA提取場

VBA提取場

因為我自己是學VBA的,為了鍛煉自己,我會在網上找壹些題,然後練練手。我對這個問題的想法如下,供大家參考。

1,先把表中第二行和第三行的內容連接起來,然後用Split把它們拆分成數組。

2.新建壹個工作表,將分解後的內容賦給新的工作表,因為表中的值不是單對應的(比如23.6BB的情況,第二行只有兩個值,但是後面三個值是連在壹起的)。建議妳讓它們在原表中對應,像21.5CC,定期寫代碼會更容易)。

3.用字典法對新增工作表中的數據進行匯總,然後賦值。最終的畫面效果就形成了。

子提取字段()

Dim ARR,I,cp,cp1,CP2,CP3,ARR1,ARR2,ARR3,arr4,RNG作為範圍,D作為對象

ARR =張(1)。【A1】。當前區域

對於I = 2到下界(ARR,2)

cp = cp & ampARR(2,I)和amp"-"

CP 1 = CP 1 & amp;ARR(3,I)和amp"+"

然後

CP2 =左(CP,Len(cp) - 1)

CP3 =左(cp1,Len(cp1) - 1)

ARR1 = Split(CP2,"-")

ARR2 = Split(CP3,“+”)

對於I = 0至欠載(ARR1)

床單(2)。單元格(I + 1,1) = ARR1(I)

然後

設置RNG =床單(2)。列(" a:a ")。查找(“23.6BB”)

申請。去RNG

RNG。挑選

選擇。Insert Shift:=xlDown,copy origin:= xlformatfromleforabove

RNG。偏移量(-1,0)。挑選

ActiveCell。公式1C1 = "=R[1]C "

對於I = 0至下界(ARR2)

床單(2)。單元格(I + 1,2) = ARR2(I)

然後

arr4 =工作表(2)。【A1】。當前區域

Set D = CreateObject("腳本。字典》)

對於I = 1至UBound(arr4)

D(arr4(I,1)) = D(arr4(I,1)) + arr4(I,2)

然後

張(1)。[H2]。調整大小(1,D.Count) = D.KEYS

張(1)。[H3]。調整大小(1,D.Count) = D.ITEMS

末端接頭