這是一個嵌套的自定義結構體,TABLE().CJX().CJ().XH(),因為從CJX、CJ、XH這三個級層中,對應的代碼是相近的,所以我想用一個子函式來簡化代碼。
需要傳遞自定義結構的TYPE到函式中,識別不同的級別來宣告對應的不同自定資料型別,然后將不同的自定義型別的結果陣列回傳到主函式中。
Type TY_XH
VALUE(1 To 7) As Variant
NAME As Variant
GZMS() As TY_GZMS
End Type
Type TY_CJ
VALUE(1 To 7) As Variant
NAME As Variant
XH() As TY_XH
GZMS() As TY_GZMS
End Type
Type TY_CJX
VALUE(1 To 7) As Variant
NAME As Variant
CJ() As TY_CJ
GZMS() As TY_GZMS
End Type
Type TY_DJLX
VALUE(1 To 7) As Variant
NAME As Variant
CJX() As TY_CJX
GZMS() As TY_GZMS
End Type
Function A(TABLE AS TY_DJLX,LEVEL)
If LEVEL = "2" Then
Dim SZ() As TY_CJX'因為dim會直接宣告,會報錯重復宣告,如何解決又能實作同樣的功能?
ElseIf LEVEL = "3" Then
Dim SZ() As TY_CJ
ElseIf LEVEL = "4" Then
Dim SZ() As TY_XH
End If
.....
A=SZ()
End Function
Sub TEST()
Dim TABLE() AS TY_DJLX
....
TABLE().CJX()=A(TABLE,2)'此部分代碼重復,想要簡化
TABLE().CJX().CJ()=A(TABLE,3)
TABLE().CJX().CJ().XH()=A(TABLE,4)
End Sub
```
新手小白,望各位大神指教,感謝!
uj5u.com熱心網友回復:
簡單來說就是怎么實作動態宣告結構體…轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/21801.html
標籤:VBA
上一篇:VB數字溢位
下一篇:Excel 幾列資料 統計的問題
