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)