2016-08-06 11 views
0

私はVBAの専門家ではありませんが、Excel用のvbaスクリプトを作成しました。非常に複雑なスクリプトですが、うまくいきます。問題は、それが自分のPC上でのみ動作することです。私は異なるExcelバージョン2007年、2013年、2016年の3つの異なるPCでそれをテストしましたが、問題なく動作します。しかし、スクリプトをコージーに渡すと、エラーが発生します。Excel VBAスクリプトのエラーサブスクリプトが範囲外です(エラー9)

例: これは私の作品:

Private Sub Test() 

Workbooks("script").Sheets("Sheet1").Range("A:Z").ClearContents 
...... 

これは、他のコンピュータに(エラー9)の範囲外エラー添字を与える、私は理由を知りません。私は、コードを変更する場合:

Private Sub Test() 

Set wb1 = ActiveWorkbook 

wb1.Sheets("Sheet1").Range("A:Z").ClearContents 
...... 

それはあまりにも他のPC上で動作しますが、私はコードをこのように変更する必要があれば、それは多くの時間がかかりますし、最も重要なのは、私があればそれをテストすることはできませんとにかくそれは私のために働くので、償還後に動作します。

このスレッドが見つかりましたVBA Subscript out of range - error 9しかし、私はなぜそれが私のために異なるExcelバージョンで動作し、他の人のためには説明しません。

ご協力いただきありがとうございます。

+2

https://stackoverflow.com/questions/38745818/windows-activate-works-on-every-computer-except-one/38748754#38748754ファイル拡張子「Workbooks( "script.xlsx")を含める必要があります。 '(または実際にどのような拡張子であっても) –

+0

' ActiveWorkbook'(現在フォーカス中)と 'ThisWorkbook'(マクロ実行中)の違いもあります。スクリプトを実行しているときに複数のワークブックを開いていると、この問題が発生することがあります。 –

+0

ありがとうございました。実際には、スクリプトはさらに3つのファイルを開き、そこからデータを取得/追加します。私は、ActiveWorkbookが正しく設定されているかどうかを明日確認し、ファイル拡張子を追加して問題が解決するかどうかを確認します。簡単に修正できるので、そうしたいと思います。 –

答えて

0

ティムが示唆したようにこれは、ファイルの拡張子を追加しても問題が解決していることが判明 - Workbooks("script.xlsx") それはすべてのPC上で動作しますperfetclyこの道を。それはとてもシンプルなものでしたが、私はそれを知らなかったのです。

もう一度おねがいします。

関連する問題