将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)