2017-05-16 9 views
1

私は自分のPCでうまく動作するマクロを持っていますが、これまでに見たことのない私の友人のPCではありません。VBA:すべてのデータを別のブックのシートにコピー

エラーは、この部分から来ている:

... 
Workbooks("GOP_Flow_" + Format(DateAdd("m", -1, Date), "yyyy") + Format(DateAdd("m", -1, Date), "mm")).Worksheets(1).UsedRange.Copy 
main.Worksheets(2).Range("A1").PasteSpecial (xlPasteValues) 
... 

は、実行時エラー9あります:コピーライン上で「範囲外の下付き」。
- 同じバージョンのExcelを使用しているため、このようなことはどうして起こりますか?
- これを行う別の方法はありますか?

ありがとうございます。

+2

下付き文字が範囲外であるということは、定義されていない範囲からコピーしようとしていることを意味します。スクリプトに宣言された「メイン」ワークブック、インデックス2のワークシートがない、その特定の日付のワークブックを名前で見つけることができない、またはブック内のインデックス1のシートが見つからない。 例:ActiveSheet.Range( "A0")。value = "something"もこのエラーを生成します。 –

+0

Rikありがとうございます。あなたの助けが好きです。 – Francis

答えて

1

ファイル名を表示するためのフォルダオプション設定には、さまざまなオプションがあります。

お使いのPCでは、オプションのHide extensions for know file typesがチェックされているため、ファイルの拡張子はファイル名に表示されません。したがって、ファイル拡張子なしでWorkbooks("GOP_Flow_201704)が機能します。

Workbooks("GOP_Flow_" & _ 
Format(DateAdd("m", -1, Date), "yyyy") & _ 
Format(DateAdd("m", -1, Date), "mm") & ".xlsx")... 
'          ^^^^^^^ 

として...あなたの友人のPC上で

は、オプションがチェックされていないので、あなたが名前に拡張子を追加する必要がありますので、拡張子は、 "GOP_Flow_201704.xlsx"のように、何かをワークブック名​​の一部になります解決策は、 という名前のファイルの拡張子を両方の場合に使用します

p.s.ちなみに、+を文字列連結に使用しないでください。代わりに&を使用してください。

+1

ASHありがとう!それはまさに問題の原因です。 – Francis

+0

@フランシスあなたは歓迎されています、それが助けられたことを知ってうれしいです。 –

関連する問題