0

我正在动态创建一个报告,我在其中创建一个工作表,重新引入记录。如何轻松键入字段名称并将它们复制到单元格中。如果每行不做一个单元格,则大约有 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)

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

4

1 回答 1

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

这是关于使用 Array() 的参考,它适用于 VB6,但它仍然是正确的。

编辑:我做了一些修改,您也可以通过将最后一行更改为:

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

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

于 2012-10-12T15:24:09.770 回答