1

特定のファイル用のすべてのマクロ ボタンがある Excel プロダクション シートから毎日のファイルを開くマクロ ボタンを作成しました。

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

  1. ビジネスユニット名: 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
4

1 に答える 1

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 行にまとめることができます。

myBusinessUnit、、などのすべての変数が他の場所で必要でない限り、myFolderYearある種の配列でそれを実行してから、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
于 2012-04-13T18:16:17.410 に答える