我试图将以下2D数组输出到工作簿中的工作表。代码运行,但数组在工作表上不可见。请帮我找出错误。由于
Dim R As Long, C As Long, vArr As Variant
vArr = Array(Array("N", "c.181C > a", "p.Q61K", "", "0.11"), _
Array("C", "c.98C > a", "p.S33Y", "", "36%"), _
Array("K", "c.2447A > T", "p.D816V", "", "8"), _
Array("B", "c.1799T > T", "p.V600E", "", "0.08"), _
Array("N", "c.181C > a", "p.Q61K", "", "0.11"), _
Array("C", "c.98C > a", "p.S33Y", "", "36"), _
Array("N", "c.181C > a", "p.Q61K", "", "0.11"), _
Array("C", "c.98C > a", "p.S33Y", "", "36"))
For R = LBound(vArr) To UBound(vArr)
For C = LBound(vArr(LBound(vArr))) To UBound(vArr(UBound(vArr)))
'MsgBox "vArr(" & R & ")(" & C & ") = " & vArr(R)(C)
Next
Next
LRow = Worksheets("Sheet2").Range("A" & Rows.count).End(xlUp).Row
Sheets("Sheet2").Select
Worksheets("Sheet2").Range("C" & LRow + 1 & ":G" & LRow + 9).Value = vArr
一方面,你试图粘贴的东西有8行到9行的范围。但是,更根本的问题是,在VBA中,数组的数组不同于二维数组。粘贴前应转换为二维数组:
Sub test()
Dim R As Long, C As Long, vArr As Variant
Dim vArr2 As Variant
Dim LRow As Long
vArr = Array(Array("N", "c.181C > a", "p.Q61K", "", "0.11"), _
Array("C", "c.98C > a", "p.S33Y", "", "36%"), _
Array("K", "c.2447A > T", "p.D816V", "", "8"), _
Array("B", "c.1799T > T", "p.V600E", "", "0.08"), _
Array("N", "c.181C > a", "p.Q61K", "", "0.11"), _
Array("C", "c.98C > a", "p.S33Y", "", "36"), _
Array("N", "c.181C > a", "p.Q61K", "", "0.11"), _
Array("C", "c.98C > a", "p.S33Y", "", "36"))
ReDim vArr2(0 To 7, 0 To 4)
For R = 0 To 7
For C = 0 To 4
vArr2(R, C) = vArr(R)(C)
Next C
Next R
LRow = Worksheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row
Sheets("Sheet2").Select
Worksheets("Sheet2").Range("C" & LRow + 1 & ":G" & LRow + 8).Value = vArr2
End Sub