2017-01-04 11 views
0

ここに私が持っているコードがあります。ワークブックとワークシートの名前としてセル参照を使用してExcelワークブック/シートを有効にする

私はWorkbooks(FileName).Activate

Sub GoToRoomSchedule() 
' 
' GoToRoomSchedule Macro 
' Set up Workbook as a reference to Cell J9 contents (MonthYear based on calendar selection) 
' Set up Worksheet as a reference to Cell H4 contents (Day of month based on calendar selection) 

    Dim WBook As String 
    Dim FileName As String 
    FileName = Range("J4") 
    WBook = FileName 
    Workbooks(FileName).Activate 

    Dim WSheet As String 
    Dim SheetName As String 
    SheetName = Range("H4") 
    WSheet = SheetName 
    Sheets(SheetName).Select 

End Sub 
+0

セルJ4には、現在開いているワークブックのファイル名(パスを除く)が含まれていますか? 'FileName = Range(" J4 ")'の直後に 'Debug.Print FileName'または' MsgBox FileName'を含め、それが何を示しているか教えてください。 – YowE3K

+0

J4の値には、開いているブックのファイル名(パスを除く)が含まれています。この値は、1つのセルからの月と別のセルからの月をマージする連結関数の結果です。 DebugステートメントとMsgBoxステートメントのどちらも結果を生成しませんでした。 – JohnO

+0

「MsgBoxが何の結果も出さなかった」と言うときは、 'MsgBox'が表示されなかったか、空文字列がメッセージとして表示されただけですか?それがまったく表示されなかった場合は、あなたのコードが決してステートメントに到達しなかったことを意味します。空の文字列が表示された場合は、セルJ4が空(またはnull)であることを意味します。 'FileName = Range(" J4 ")文が実行されたときの' ActiveSheet'は、あなたのファイル名が格納されているものでしょうか? – YowE3K

答えて

0

ライン上の添字エラーを取得し、ここで起きている可能性が物事のカップルがあります。私は両方のテストに

はエラーに

実行時エラーを与える「9」:インデックスが有効範囲にありません

まず、あなたのコメントの一つにあなたは月と年を連結言います他の2つのセルからJ4に移動します。たとえば、November2017の場合、これはファイル名を探しているときのエラーとなります。ただし、J4がNovember2017.xlsxと表示される場合は、このファイルが検索されます。

第2に、J4が112017.xlsxと表示されていますが、このファイルが開いていない場合は、上記のエラーも表示されます。

関連する問題