将字符串数组复制到单元格区域(在MS Excel中使用VBA)

将字符串数组复制到单元格区域(在MS Excel中使用VBA),excel,vba,Excel,Vba,我可以使用For构造来循环字符串数组元素,并将其内容复制到范围的各个单元格中;但是有没有更简单的方法直接将字符串数组项复制到范围中 这个问题与我想做的正好相反。就像这样 Sub StringArrayToRange() Dim strArr(3) As String strArr(0) = "one" strArr(1) = "two" strArr(2) = "three" Range("A1:A" & UBound(strArr) + 1)

我可以使用
For
构造来循环字符串数组元素,并将其内容复制到范围的各个单元格中;但是有没有更简单的方法直接将字符串数组项复制到范围中

这个问题与我想做的正好相反。

就像这样

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
另外,有关更多示例和教程

编辑:

这解释了为什么使用了
工作表函数.Transpose

您真的需要单元格中的数组吗?记住,您可以定义一个等于数组值的变量:var1={v11,v12,v13;v21,v22,v23}


然后将“=INDEX(var1,2,2)”放在任何to单元格中,以获得值v22。

我有另一种方法:

Dim Arr()
With ThisWorkbook.Sheets("MassHeals")
  Arr = Array("1", "2", "3", "4")
  .Cells(1, 1).Resize(1, 4).value2 = Arr 
End With

数组设置为一行,我不使用转置。

你好,谢谢链接和代码。我调整了一下,不太明白为什么需要使用
WorksheetFunction.Transpose
?我的示例在没有函数hi@Santosh的情况下似乎工作得很好,
WorksheetFunction.Transpose
如何帮助上面的代码。没有它,我贴的样品似乎很好用。。它有助于旧版本之间的兼容性吗?@KentPawar请参考我回答中的链接,但是
short
story
short
(呵呵)一维数组位于
水平视图中,因此您正在将其转换为垂直视图,以便在技术上进行更正。谢谢@mehow。。现在看看,啊。。我刚刚意识到你的代码需要
工作表函数。当它输出到一列中,而我的代码输出行hehe时,将其转置。。我需要休息一下。谢谢,标记为answeredHi@gssi,谢谢。我需要将数组项分别放入单个单元格中,但我希望使用VBA进行此操作,并且目标工作表是动态创建的,因此不起作用。仅当您在列中写入一维数组时,才需要转置,而不是像这里这样在行中写入一维数组时