【发布时间】:2018-04-06 08:04:59
【问题描述】:
我可以使用For 构造循环遍历字符串数组元素并将它们的内容复制到范围的各个单元格中;但是有没有更简单的方法可以直接将字符串数组项复制到 Range 中?
Range to string array 的问题与我正在尝试做的完全相反。
【问题讨论】:
我可以使用For 构造循环遍历字符串数组元素并将它们的内容复制到范围的各个单元格中;但是有没有更简单的方法可以直接将字符串数组项复制到 Range 中?
Range to string array 的问题与我正在尝试做的完全相反。
【问题讨论】:
这样
Sub StringArrayToRange()
Dim strArr(3) As String
strArr(0) = "one"
strArr(1) = "two"
strArr(2) = "three"
Range("A1:A" & UBound(strArr) + 1) = WorksheetFunction.Transpose(strArr)
End Sub
另外,this 获取更多示例和教程
编辑:
这个documentation 解释了为什么使用WorksheetFunction.Transpose
【讨论】:
WorksheetFunction.Transpose?没有该功能,我的示例似乎可以正常工作
WorksheetFunction.Transpose 如何在上面的代码中提供帮助。我发布的示例在没有它的情况下似乎可以正常工作。它是否有助于旧版本的兼容性?
short 故事shorter(呵呵)一维数组在horizontal 视图中,因此您将其转换为垂直技术上正确
WorksheetFunction.Transpose,因为它正在输出到列中,而我的代码按行输出呵呵.. 我需要休息一下:p。谢谢,已将其标记为已回答
你真的需要一个单元格中的数组吗?请记住,您可以定义一个等于数组值的变量:var1 = {v11, v12, v13;v21, v22, v23}
然后将 "=INDEX(var1, 2, 2)" 放入任何到单元格中以获取值 v22。
【讨论】:
我有另一种方法:
Dim Arr()
With ThisWorkbook.Sheets("MassHeals")
Arr = Array("1", "2", "3", "4")
.Cells(1, 1).Resize(1, 4).value2 = Arr
End With
数组设置在一行,我不使用转置。
【讨论】: