【发布时间】:2016-04-27 13:29:07
【问题描述】:
试图利用两个数组来遍历数据传输过程,方法是将单元格从一张表复制并粘贴到新创建的一张表中。下面的代码仅负责以正确的顺序将正确的数据从一张表复制和粘贴到新创建的一张。我在尝试初始化数组时收到类型不匹配。它发生在第一个数组上,但我还没有到第二个数组来测试它,所以它也可能是错误的。
注意事项: 1)firmLocationColumn 是long 类型。 2)存储在所述数组中的所有数据都是为了表示列号。它们是乱序的,所以我需要以正确的顺序将它们存储在数组中,这样更容易迭代它们,而不是一遍又一遍地编写相同的信息。
如果我遗漏了任何需要解释的内容,请告诉我,我将编辑我的问题:
Private Sub GetSpecificTradeDetails(ByVal masterListRow As Long, ByVal firmLocationColumn As Long, ByVal newExcelConfirmSheet As Worksheet, ByVal newExcelConfirmSheetLastRow As Long)
Dim tradesMasterListColumnIndexArray() As Long
Dim newExcelConfirmColumnIndexArray() As Long
Dim arrayIndexCounter As Long
'Sets array of columns for loop iteration through data sheet
tradesMasterListColumnIndexArray() = [1,4,firmLocationColumn,(firmLocationColumn - 1),(firmLocationColumn + 3),15,16,10,11,8,19,18,17,(firmLocationColumn + 4),9,6,2]
newExcelConfirmColumnIndexArray() = [1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18]
Select Case firmLocationColumn
Case 25
'Sets confirm direction to "BUY"
newExcelConfirmSheet.Cells((newExcelConfirmSheetLastRow + 1), 6) = "BUY"
Case 27
'Sets confirm direction to "SELL"
newExcelConfirmSheet.Cells((newExcelConfirmSheetLastRow + 1), 6) = "SELL"
End Select
'Transfers trade details between the masterlist and the newly created confirm sheet
With TradesMasterSheet
For arrayIndexCounter = 0 To 17
.Cells(masterListRow, tradesMasterListColumnIndexArray(arrayIndexCounter)).Copy _
Destination:=newExcelConfirmSheet.Cells((newExcelConfirmSheetLastRow + 1), newExcelConfirmColumnIndexArray(arrayIndexCounter))
Next
End With
End Sub
【问题讨论】: