下記の、Debug.Print (checkws.Name) '
ここで正しく"2340_XXX勘定"が出力されるのですが、For Eachを回す過程でELSEのMsgBox "2340*からはじまるシート名が見つからないよ" & vbCrLf & "「処理を終了します」"
が実行されてしまいます。Likeの使いかたや、型に問題があるのでしょうか。アドバイスを頂けると幸いです。
vba
1 2Sub getData() 3 Dim currentPath As String 4 Dim getFilePath As String 5 Dim opendAready As Workbook 6 Dim hanteiwb As Workbook 7 Dim hanteiws As Worksheet 8 Dim checkws As Worksheet 9 10 11 currentPath = ThisWorkbook.Path() 12 getFilePath = Dir(currentPath & "*判定*") 13 14 15 If getFilePath = "" Then 16 MsgBox "*判定*の名称を持つファイル名がないです" 17 Else 18 For Each openAready In Workbooks 19 If openAready.Name = getFilePath Then 20 MsgBox "既に*判定ファイルを開いてしまっています。一旦閉じて作業してね" & vbCrLf & "「処理を終了します」" 21 Exit Sub 22 End If 23 Next openAready 24 25 Workbooks.Open Filename:=currentPath & "\" & getFilePath, UpdateLinks:=False 26 Set hanteiwb = ActiveWorkbook 27 For Each checkws In hanteiwb.Worksheets 28 Debug.Print (checkws.Name) 'ここ 29 If checkws.Name Like "2340*" Then 30 Set hanteiws = checkws 31 Else 32 MsgBox "2340*からはじまるシート名が見つからないよ" & vbCrLf & "「処理を終了します」" 33 Exit Sub 34 End If 35 Next checkws 36 'Debug.Print (hanteiws.Name) 37 38 39End If 40 41 42End Sub
回答1件
あなたの回答
tips
プレビュー