0

私は動的にレポートを作成しています。ここでワークシートを作成し、レコードを新たに取り込みます。フィールド名を簡単に入力してセルにコピーするにはどうすればよいですか。1行に1つのセルを実行しない場合、最大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

これはVB6用のArray()の使用に関するリファレンスですが、それでも正しいです。

編集:私はいくつかのいじりをしましたが、最後の行を次のように変更することで、ほぼ同じことを達成することもできます:

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 に答える