【发布时间】:2015-09-17 00:34:42
【问题描述】:
我需要从一个数组向下写入 Excel 单元格。
我在数组中有三个值,我想把它写在看起来像这样的单元格中:
欧元 英镑 美元代码:
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 英镑但我事先不知道会有多少种货币或金额有多大。一开始我想过滤重复项,然后根据货币总结金额。
【问题讨论】:
-
关于您的其他问题,您没有提供足够的信息来重现您的问题,甚至无法确定是什么问题。请阅读How to create a minimal, complete and verifiable example。您还应该查看 Chip Pearson 的网站,以便了解如何将数组写入范围。
-
为了解决您的全部问题,我建议如下所示,使用数据透视表。只需在同一个工作表上创建一个表格;使用宏记录器;然后清理它。它将为您提供货币列表以及每种货币的总和。当列表发生变化时,只需刷新它。您可能需要进行编辑,以便在展开列表时更新 Pivot 的范围。