VBA在Array的索引处获取Dim的名称

Sub foobar() Dim wine As Variant wine = Array("Red", "White", "Rose", "Sparkling") Dim spirits As Variant spirits = Array("Vodka", "Whiskey", "Rum", "Gin") Dim beer As Variant beer = Array("Ale", "Lager", "Pilsner", "Stout") Dim inventory As Variant inventory = Array(wine, spirits, beer) Range("A1") = inventory(1) End Sub 

我目前的想法是把数组的名称,

 wine = Array("wine", "Red", "White", "Rose", "Sparkling") spirits = Array("spirits", "Vodka", "Whiskey", "Rum", "Gin") beer = Array("beer", "Ale", "Lager", "Pilsner", "Stout") inventory = Array(wine, spirits, beer) 

因此inventory(x)(0)将总是以这种方式返回数组的名称。

我想要“A1”显示维度的名称,即精神,但精神本身是一个数组,所以在“A1”我得到相当于库存(1)(0)。

有没有更好的方法来获得葡萄酒,烈性酒或啤酒尺寸返回作为他们的名字,而不是包括数组中的名称(如上)?

如果你想通过名字来引用东西,那么字典是一个解决scheme。

 Sub foobar() Dim wine As Variant wine = Array("Red", "White", "Rose", "Sparkling") Dim spirits As Variant spirits = Array("Vodka", "Whiskey", "Rum", "Gin") Dim beer As Variant beer = Array("Ale", "Lager", "Pilsner", "Stout") Dim inventory As Object, k Set inventory = CreateObject("Scripting.Dictionary") With inventory .Add "Wine", wine .Add "Spirits", spirits .Add "Beer", beer End With 'access a specific item Debug.Print Join(inventory("Beer"), ",") 'loop over items For each k in inventory.keys Debug.Print k, Join(inventory(k), ",") Next k End Sub