1

SQLソースから既にデータソースがバインドされているExcelの既存のリストオブジェクトに列を追加する方法を知っている人はいますか?そのデータの列のすべてのセルに数式を含む別の列を追加して、その時点で表示されているデータの量に一致させたいだけです。

これまでに試したことの2つの例を以下に示します。1。の実行時にのみ構文エラーが発生しますSyntax error: Missing operand before '=' operator。2.あいまいなCOM例外を与えます。

1.1。

    Dim prodDateCol = New DataColumn("Prod Date", GetType(System.Int32),
    "=LEFT([Production Code],4)")
    ComplaintsListObject.ListColumns.Add(prodDateCol)

2.2。

    Dim objListCol = ProdListObject.ListColumns.Add()
    Dim listColRange = objListCol.DataBodyRange
    listColRange.Cells(1, 1) = "=LEFT([Production Code],4)"

別の方法として、リストオブジェクトのサイズが変わるたびに最初にチェックした後、Excelセルを使用してこれを行うことができることを知っていますが、それをより詳細に行う方法を検討する前に..リストオブジェクトを使用してこれを行う方法があることを望んでいました自体。

誰かが例や提案を持っていますか?

ありがとう

更新: テスト用にこれを少し調整し、の使用法についても詳しく調べました。.Expression特定の関数のみが許可されるため、に変更LEFTしましたSUBSTRING。この例でも、次のCOM例外が返されます。Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))

    Dim prodDateCol As DataColumn = New DataColumn
    prodDateCol.ColumnName = "Prod Date"
    prodDateCol.DataType = System.Type.GetType("System.Int32")
    prodDateCol.Expression = "SUBSTRING([Production Code],1,4)"

    ComplaintsListObject.ListColumns.Add(prodDateCol)
4

0 に答える 0