[[20200327170937]] 『VBAパスが見つかりませんエラー』(ピノ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAパスが見つかりませんエラー』(ピノ)

お世話になっております。

VBA初歩的な質問ですみません。

以下の構文にて、指定フォルダの中に、
年月フォルダを作成する工程を行っているのですが、
「パスが見つかりません」というエラーが発生してしまいます。
原因がわかりましたら、教えていただけないでしょうか。

【指定フォルダ】
\\n.net\fs01\fs01_045\ライブラリー\A023生データ抽出

Sub 年月フォルダ内にユニット別フォルダ作成担当者別ファイルに分ける()

 Dim myDic As Object, d As Variant, v() As String
 Dim myPath As String, my担当者名 As String, file担当者名 As String
 Dim LastRow As Long, i As Long, c As Range
 Dim objWb As Workbook

 Application.ScreenUpdating = False

 Set myDic = CreateObject("Scripting.Dictionary")

 myPath = "\\n.net\fs01\fs01_045\ライブラリー\A023生データ抽出" & " \ " 'VBAのあるフォルダ(元フォルダ)+" \ "
 'myPath = myPath & Format(DateAdd("m", -1, Date), "yymm") '前月のフォルダ

 MkDir myPath '前月のフォルダ作成
 With ActiveSheet

 '★条件可変'E列の最終行を取得
 LastRow = .Cells(Rows.Count, "E").End(xlUp).Row

 '重複のないユニット名をmyDicに格納
 For Each c In .Range("E2:E" & LastRow)

 '担当者名
 my担当者名 = c.Offset(, 2).Value

 'myDicにユニット名の登録が有れば
 If myDic.Exists(c.Value) Then
 v = myDic(c.Value)

 'vに担当者名の登録が無ければ登録
 If IsError(Application.Match(my担当者名, v, 0)) Then
    ReDim Preserve v(UBound(v) + 1)
     v(UBound(v)) = my担当者名
     myDic(c.Value) = v
 End If

 Else
     ReDim v(0) As String
    v(0) = my担当者名
    myDic(c.Value) = v
 End If
 Next
 For Each d In myDic.keys

 'ユニットフォルダーの有無確認
 If Dir(myPath & "\" & d, vbDirectory) = "" Then
 '無ければ作成
    MkDir myPath & "\" & d
 End If

 'myDicから担当者名を取出し
 v = myDic(d)

 For i = 0 To UBound(v)

 file担当者名 = myPath & "\" & d & "\" & v(i) & ".xlsx"

 '担当者名ファイル有無確認
 If Dir(file担当者名) = "" Then

 '無ければ作成
 With Workbooks.Add
    .Worksheets(1).Name = d & "_" & v(i)
    .Worksheets(1).Range("A1:C1").Value = Array("計上年月", "グループコード", "グループ名")
    .SaveAs file担当者名
    .Close
 End With
 End If

 Set objWb = Workbooks.Open(file担当者名)

 '★条件可変(オートフィルター)
    .Range("A1").AutoFilter Field:=5, Criteria1:=d 'ユニット名で抽出
    .Range("A1").AutoFilter Field:=7, Criteria1:=v(i) '担当者名で抽出
    .Range("A2:BE" & LastRow).Copy objWb.Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Offset(1)
    objWb.Close True '上書き保存して閉じる

 Next i
 Next d

    .AutoFilterMode = False
    .Activate
 End With

 '作成完了後メッセージボックス表示
 Set myDic = Nothing
    Application.ScreenUpdating = True
    MsgBox "Done!"

 End Sub

< 使用 Excel:Excel2016、使用 OS:Windows10 >


どこでエラーがでますか
(えく) 2020/03/27(金) 17:28

 横入りでしかも当てずっぽうですが。

 セルに、ファイルやフォルダのパスとしては使えない
 文字列が入っていませんか?
(OK) 2020/03/27(金) 17:57

 >"\\n.net\fs01\fs01_045\ライブラリー\A023生データ抽出" & " \ " 'VBAのあるフォルダ(元フォルダ)+" \ "

 これ、なんで所々 "" で囲まれているの?
 変数使ってないのに分ける必要あるの?
 ひょっとして、ほとんど意味が解ってないのでは・・・。
(BJ) 2020/03/27(金) 18:28

 パスの文字数が多すぎる(具体的な文字数は調べてません)
 時もそのエラーメッセージが出るようです。
(OK) 2020/03/27(金) 18:44

 >myPath = "\\n.net\fs01\fs01_045\ライブラリー\A023生データ抽出" & " \ "
 関係ないかもしれませんが、" \ " これ気になるんですけどね
 パス区切りになぜ空白挟むのか?
(´・ω・`) 2020/03/28(土) 10:11

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.