|
こんにちは^^
お世話になります〜
最近仕事がばたばたして、なかなか時間がとれないでいました。
合間を縫って、試行錯誤してるんですが、どうもわかりません。
もう一度、SOS出せていただきます。
えと、皆様のアドバイスを元に、
Private Sub cmdOK_Click()
Dim strTougou() As String
Dim i As Long
With lstSheet
If .ListCount = -1 Then
MsgBox "統合するシートを選んでください"
Exit Sub
Else
ReDim strTougou(.ListCount - 1)
For i = 0 To .ListCount - 1
strTougou(i) = """'" & ActiveWorkbook.Path & "\[" & ActiveWorkbook.Name & "]" & .List(i) & "'!" & pr_strAddress & """"
Next i
End If
End With
pr_ws.Range(pr_strSaki).Consolidate sources:=strTougou, Function:=xlSum
End Sub
とやり直してみました。・・・が、やっぱり上手くいきません。
途中に
For i = LBound(strTougou) To UBound(strTougou)
Debug.Print strTougou(i)
Next i
と入れて、配列の中味を確かめたところ、
"'C:\WINDOWS\デスクトップ\[統合テスト.xls]4月'!R13C7:R24C27"
"'C:\WINDOWS\デスクトップ\[統合テスト.xls]5月'!R13C7:R24C27"
"'C:\WINDOWS\デスクトップ\[統合テスト.xls]6月'!R13C7:R24C27"
と、なりました。
そして、
統合のメイン処理のところに、これを直接入れてみたら、
pr_ws.Range(pr_strSaki).Consolidate sources:=Array("'C:\WINDOWS\デスクトップ\[統合テスト.xls]4月'!R13C7:R24C27", "'C:\WINDOWS\デスクトップ\[統合テスト.xls]5月'!R13C7:R24C27", "'C:\WINDOWS\デスクトップ\[統合テスト.xls]6月'!R13C7:R24C27"), Function:=xlSum
正常に動きました。
なので、引数の文字列は正しいと思うんですが・・・何故、配列変数だとダメなんでしょう?
前回と同じく、「ファイルが開けません」のメッセージが、3回(4月、5月、6月分)出ます。
ichinoseさんに
'==============================================
>> For i = 0 To .ListCount - 1
>> strTougou = strTougou & """'" & ActiveWorkbook.Path & "\[" & ActiveWorkbook.Name & "]" & .List(i) & "'!" & pr_strAddress & ""","
>> Next i
よくみると↑この文字列の連結も気になりますねえ・・・。
""で文字列内にダブルコーテションが入っていますが、確認してみて下さい。
'==============================================
とのアドバイスを頂いたのも、恥ずかしながらよくわかんないです。
だって、マクロの記録で生成したコードにもダブルコーテーション入ってるんですもの〜
またもや、アホなことをしてるんかも・・・
どうぞ、再びアドバイスお願いいたしますm(__)m
|
|