[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Consolidate のarrayにレコードセットを使いたい』(けい)
Consolidate の array に レコードセットした内容を使いたい。
Range("A1").Consolidate Sources:=Array(★ここ★), Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
★ここ★のところの書き方が分かりません。
誰か教えてください(T_T)
オブジェクトは4つ。1列目はIDに統一、2列目に数。行数は不揃い
adoRS1
adoRS2
adoRS3
adoRS4
レコードセット
Set adoRS1 = New ADODB.Recordset
・
・
・
した
adoRS1
adoRS2
adoRS3
adoRS4
に、
AddNewで、情報追加済みです
< 使用 Excel:Microsoft365、使用 OS:Windows10 >
>バリアント型(Variant)の値を使用します。 >統合元範囲を参照する、R1C1 形式の文字列を指定します。 >指定するセル参照には、必ず統合するシートのパスを含めます。 らしいので、レコードセットを直接指定するのはできないんじゃないですかね? http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_consolidate.html
(稲葉) 2023/01/25(水) 18:04:26
私も同じように配列もためしてみましたが、配列もだめでした
(けい) 2023/01/25(水) 18:17:16
調べたけどないなぁ・・・ Sourceの部分はもともと配列渡しだから、「Variant型の配列で、Sheet名とセルアドレス渡してね」って意味だろうから、見かけた配列ってこんな感じだったんじゃないの? Sub a() Dim v(1) As Variant v(0) = Sheets(1).Name & "!" & Range("A1:A5").Address(, , xlR1C1) v(1) = Sheets(2).Name & "!" & Range("A1:A5").Address(, , xlR1C1) Worksheets("Sheet3").Range("A1").Consolidate _ Sources:=v, _ Function:=xlSum, _ TopRow:=False, _ LeftColumn:=False, _ CreateLinks:=False End Sub
(稲葉) 2023/01/25(水) 18:43:21
どこのサイトか、履歴も調べたのですがみつかりませんでした
私のみ間違いかもしれませんね。
Consolidateで万行単位を統合すると30分以上かかるので、
オブジェクトに渡す事で、高速化できればと思ってました
他の方法を考えてみます。お付き合いいただきありがとうございました。
(けい) 2023/01/26(木) 11:40:49
万年単位のデータをエクセルで持ってるってことっすか? たぶん、テーブル化とクエリ(か、ピボットテーブル)ですぐできちゃう内容だと思いますよ。
(稲葉) 2023/01/26(木) 12:14:30
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.