Vba 将字符串数组输出到新范围

Vba 将字符串数组输出到新范围,vba,excel,Vba,Excel,我试图从一个工作表的特定范围中获取字符串,并将数组输出到另一个工作表范围。不幸的是,生成的代码没有提供任何类型的输出 提前谢谢你的帮助 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

我试图从一个工作表的特定范围中获取字符串,并将数组输出到另一个工作表范围。不幸的是,生成的代码没有提供任何类型的输出

提前谢谢你的帮助

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

您没有为
strItemName
分配任何值。这是一个将所有内容都保存在
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)

您没有为
strItemName
分配任何值。这是一个将所有内容都保存在
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)

您没有为
strItemName
分配任何值。这是一个将所有内容都保存在
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)

您没有为
strItemName
分配任何值。这是一个将所有内容都保存在
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)

编辑:哎呀,我看不到上面的答案。这个答案几乎是一样的

试试这个

首先,将
varItemName
更改为数组:

Dim varItemName() As Variant
然后:

这是假设您希望将列数据转换为一行。如果不是,请在最后一行执行此操作:

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

编辑:哎呀,我看不到上面的答案。这个答案几乎是一样的

试试这个

首先,将
varItemName
更改为数组:

Dim varItemName() As Variant
然后:

这是假设您希望将列数据转换为一行。如果不是,请在最后一行执行此操作:

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

编辑:哎呀,我看不到上面的答案。这个答案几乎是一样的

试试这个

首先,将
varItemName
更改为数组:

Dim varItemName() As Variant
然后:

这是假设您希望将列数据转换为一行。如果不是,请在最后一行执行此操作:

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

编辑:哎呀,我看不到上面的答案。这个答案几乎是一样的

试试这个

首先,将
varItemName
更改为数组:

Dim varItemName() As Variant
然后:

这是假设您希望将列数据转换为一行。如果不是,请在最后一行执行此操作:

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

我得到一个“13”类型不匹配的运行时错误。我已将范围A5:A100切换到B5:B100,但我不确定这是导致错误的原因。我得到了一个“13”类型不匹配的运行时错误。我已将范围A5:A100切换到B5:B100,但我不确定这是导致错误的原因。我得到了一个“13”类型不匹配的运行时错误。我已将范围A5:A100切换到B5:B100,但我不确定这是导致错误的原因。我得到了一个“13”类型不匹配的运行时错误。我已将A5:A100的范围切换到B5:B100,但我不确定这是导致错误的原因。