将string数组输出到新的范围

我试图抓住从一个工作表的特定范围的string,并将数组输出到另一个工作表范围。 不幸的是,由此产生的代码给了我没有任何输出。

感谢您提前的帮助。

Dim strFunds As String Dim varItemName As Variant Dim strItemName() As String Dim iRow As Long Dim rngMyRange As Range Sub DataGrab() ActiveWorkbook.Sheets("Returns").Activate Set rngMyRange = Range("A5:A100") varItemName = rngMyRange ReDim strItemName(LBound(varItemName, 1) To UBound(varItemName, 1)) ActiveWorkbook.Sheets("Data").Activate Range("A3:A" & UBound(strItemName) + 1) = WorksheetFunction.Transpose(strItemName) End Sub 

 Sub Main() Dim rngArr rngArr = Sheets("Returns").Range("A5:B100").Value Sheets("Data").Range("A3").Resize(UBound(rngArr) + 1, 2) = rngArr End Sub 

编辑:哎呀,没有看到我上面的答案。 这个答案几乎是一回事。

尝试这个。

首先,将varItemName更改为一个数组:

 Dim varItemName() As Variant 

然后:

 Sub DataGrab() ActiveWorkbook.Sheets("Returns").Activate Set rngMyRange = Range("A5:A100") varItemName = rngMyRange.Value 'ReDim strItemName(LBound(varItemName, 1) To UBound(varItemName, 1)) ActiveWorkbook.Sheets("Data").Activate Range("A3").Resize(1, UBound(varItemName) + 1) = WorksheetFunction.Transpose(varItemName) End Sub 

这是假设你想要将你的列数据转换成单行。 如果没有,请在最后一行代替:

 Range("A3").Resize(UBound(varItemName) + 1, 1) = varItemName 

您没有将任何值分配给strItemName 。 这是一个只保存varItemName所有内容的varItemName

 ActiveWorkbook.Sheets("Returns").Activate Set rngMyRange = Range("A5:A100") varItemName = rngMyRange.Value ActiveWorkbook.Sheets("Data").Activate Range(Cells(3, 1), Cells(3, UBound(varItemName))) = WorksheetFunction.Transpose(varItemName) 

更新:如果你不需要保存varItemName ,你可以使用这个较短的版本:

 Set rngMyRange = Range("A5:A100") ActiveWorkbook.Sheets("Data").Activate Range(Cells(3, 1), Cells(3, 100)) = WorksheetFunction.Transpose(rngMyRange)