2012-04-13 21 views
1

Excelのプロダクションシートから毎日ファイルを開くマクロボタンを作成しました。そこには特定のファイルのマクロボタンがすべてあります。ファイルを開くためのExcel VBAコード

すべての私のファイルの形式は従来と同じです:

  1. Busineseユニット名:YMCA
  2. 年:2012
  3. 月:4月
  4. 週:週2
  5. 日: 12
  6. ファイル名:YMCテンプレート041212.xlsm

最後のExcelファイル名の拡張子に問題があります。 MyDaily TemplateとMyDateProdを.xlsmとともに追加するにはどうすればいいですか? 私はこの-Jを持っています..... \ & myDailyTemplate & myDateProd.xlsm」)は、全ファイルのパス名については下記を参照

Sub Open_DailyProd() 

    Dim myFolderYear As String 
    Dim myFolderMonth As String 
    Dim myFolderWeek As String 
    Dim myFolderDaily As String 
    Dim myDateProd As String 
    Dim myBusinessUnit As String 
    Dim myDailyTemplate As String 

    myBusinessUnit = Sheet1.Cells(32, 2) 
    myFolderYear = Sheet1.Cells(11, 2) 
    myFolderMonth = Sheet1.Cells(12, 2) 
    myFolderWeek = Sheet1.Cells(13, 2) 
    myFolderDaily = Sheet1.Cells(14, 2) 
    myDateProd = Sheet1.Cells(15, 2) 
    myDailyTemplate = Sheet1.Cells(6, 5) 

    Application.Workbooks.Open ("J:\IAS\3CMC05HA01\IAC Clients\myBusinessUnit\myFolderYear\myFolderMonth\myFolderWeek\myFolderDaily\& myDailyTemplate & myDateProd.xlsm") 

End Sub 

答えて

5

Excelが呼ばれるファイルを探しています:。 "J:\IAS\3CMC05HA01\IAC Clients\myBusinessUnit\myFolderYear\myFolderMonth\myFolderWeek\myFolderDaily\& myDailyTemplate & myDateProd.xlsm"

これは引用符に含まれているものですが、コードからこの文字列に含まれるいくつかの変数があるように見えるので、それらを引用符から取り除いて連結する必要があります。

"J:\IAS\3CMC05HA01\IAC Clients\" & myBusinessUnit & "\" & myFolderYear _ 
& "\" & myFolderMonth & "\" & myFolderWeek & "\" & myFolderDaily & _ 
"\" & myDailyTemplate & myDateProd & ".xlsm" 

ここでは画面上で読みやすくするために_を追加しましたが、必要ではありませんが、必要に応じてすべてを1行にまとめることができます。あなたが他の場所でmyBusinessUnitmyFolderYearの全て、などの変数を必要としない限り

、私はすべてを連結するJoin機能をやって、その後、アレイのいくつかの並べ替えでそれをやって考えるでしょう。個人的には、非常に長い文字列を見て、パスのどの部分が間違っているのかを調べるのではなく、フォルダー構造の階層を前方に見て簡単に管理する方が簡単です。

Sub Open_DailyProd() 

    Dim pathParts(1 To 10) As String 
    Dim path As String 

    pathParts(1) = "J:" 
    pathParts(2) = "IAS" 
    pathParts(3) = "3CMC05HA01" 
    pathParts(4) = "IAC Clients" 
    pathParts(5) = Sheet1.Cells(32, 2) 
    pathParts(6) = Sheet1.Cells(11, 2) 
    pathParts(7) = Sheet1.Cells(12, 2) 
    pathParts(8) = Sheet1.Cells(13, 2) 
    pathParts(9) = Sheet1.Cells(14, 2) 
    pathParts(10) = Sheet1.Cells(6, 5) & Sheet1.Cells(15, 2) & ".xlsm" 

    path = Join(pathParts, "\") 

    Application.Workbooks.Open (path) 

End Sub 
+0

私はpath = Join(pathPart、 "\")で発行しています。 – cemg

+0

@cemg私はそれを書いてしまう前に試していないので、私はそれに "テストされていない"と書かなければなりませんでした。基本的な考え方は健全です。あなたはどんなエラーを出していますか? – psubsee2003

+0

@cemg私は自分のコードに入力ミスがありましたが、修正しました。今回はテストしました。それはあなたのために働くはずです。そうでない場合は、求めているファイルがその場所に存在しないか、パスにタイプミスがあると考える必要があります – psubsee2003

関連する問題