如何将文本数组复制到Excel中的一系列单元格

时间:2012-10-12 15:17:48

标签: excel excel-vba excel-2010 vba

我正在动态创建一个报告,在那里我创建一个工作表,重新引入记录。如何轻松键入字段名称并将其复制到单元格。没有每行一个单元格,就有大约20列。

我试过了:

dim fieldNames as variant
fieldNames = ("'DS Date', 'A', 'B', 'A','S ASD', 'S','D S','D S', 'S','D S', 'SD', 'S','D'")
Sheets("DATA").Range("C14:W14").Value = Application.WorksheetFunction.Transpose(fieldNames)

但是它只是在每个单元格中发布了整个内容?有什么想法吗?

1 个答案:

答案 0 :(得分:1)

由于您正在对数组进行硬编码,请尝试更类似的内容:

Dim fieldNames As Variant
fieldNames = Array("DS Date", "A", "B", "A", "S ASD", "S", "D S", "D S", "S", "D S", "SD", "S", "D")
Sheets("DATA").Range("C14:W14").Value = fieldNames

这是VB6的reference on using Array(),但它仍然是正确的。

编辑:我做了一些修补,你也可以通过改变你的最后一行来完成同样的事情:

Sheets("DATA").Range("C14:W14").FormulaArray = Application.WorksheetFunction.Transpose(Application.WorksheetFunction.Transpose(Split(fieldNames, ",")))

此方法将水平数组转换为垂直,然后再转回,但是像您一样使用Transpose。 :-D当然,这个方法并没有真正做到,因为我们可以直接放下Split(fieldNames, ",")。像这样:Sheets("Data").Range("C14:W14").value = Split(fieldNames, ",")不确定我为什么先给你一个复杂的例子。