从数组写入单元格Excel vba

时间:2015-06-30 09:27:55

标签: arrays excel vba excel-vba

我需要如何从数组写入Excel单元格。

我在数组中有三个值,我想在单元格中写出它看起来像这样:

EUR
GBP
USD

但我不知道怎么做。我希望你能帮助我。 代码:

On Error Resume Next
For Each element In CurrencyArray
    myCollection.Add Item:=element, Key:=element
Next element
On Error GoTo 0

ReDim CurrencyArray(1 To myCollection.Count)
For element = 1 To myCollection.Count
   CurrencyArray(element) = myCollection(element)
Next element


Set Summary = Range("M1")
Summary.Value = "Sum Currency"

此时我想将值写入单元格。

ReDim CurrencyArray(0 To myCollection.Count, 1 To 1)
For element = 1 To myCollection.Count
CurrencyArray(element, 1) = myCollection(element)
Next element


CurrencyArray(0, 1) = "Sum Currency"

Set Summary = Range("M1").Resize(UBound(CurrencyArray, 1) + 1)
'Sum currency values
Dim Count As Integer
Dim SumArray As Variant

For Each element In CurrencyArray
 For Count = 2 To lRow
    If ws.Cells(Count, 5) = element Then
      SumArray = SumArray + ws.Cells(Count, 6)
    End If
 Next Count
Next element


Summary.Value = CurrencyArray

这不起作用......我希望你能帮我解决问题 看起来应该是这样的:

EUR 1000
GBP 500
YEN 100

提前致谢

问题是我有一个不同值的电子表格,但我不允许编辑除VBA之外的电子表格。 货币金额
1000欧元 100欧元 12欧元 70欧元 40英镑 20英镑

我必须过滤不同的电流并总结电流的数量。然后我想将它设置到Excel工作表的正确位置。

1182欧元 60英镑

但我事先并不知道有多少货币或金额有多大。起初我喜欢过滤共和国,然后根据货币总结金额。

祝你好运

的Matthias

2 个答案:

答案 0 :(得分:0)

要垂直书写,您需要拥有2D数组和正确大小的目标。所以  (完全未经测试):

System.out

另一种选择是移植你的单一尺寸阵列。但是你可以转置的阵列有多大的限制;并且,以上述方式执行此操作,当您必须单独从集合中将元素写入数组时,保存该步骤。

答案 1 :(得分:0)

我不确定我是否正确地提出了你的问题,但试试这个:

Dim CurrencyArray As Variant
CurrencyArray = Array("EUR", "GBP", "USD")
Range("A1:A3") = Application.Transpose(CurrencyArray)