私はファイルが上記のディレクトリにあるかどうかをチェックするExcel vbaサブを持っています。問題は、forループの最初の反復の後に常にFile Savedに移動することです。ファイルが実際に見つかった場合、ActualValue
の値には値が含まれていますが、値が見つからない場合は値が ""です。問題はそれが常に= 0または= ""状態になることです。レン(Dir(ActualValue))= 0の場合、コードexcel vbaは常にループ内でtrueを返します
Dim ActualValue As String
For i = 17 To 32
On Error Resume Next
DateFormat = Format("2017-12-11", "yyyy-mm-dd")
Sheet4.Cells(i, 5).Select
Selection.ClearContents
SearchValue = Sheet4.Cells(i, 1).Value
If SearchValue = "" Then
MsgBox "No A/C indicated. Please check.", vbOKOnly
Exit Sub
End If
ActualValue = Dir("A:\123 456\789\abc efg\Sample Folder\SAMPLE FOLDER\" & DateFormat & "\" & SearchValue & "" & "*.xls")
If Len(Dir(ActualValue)) = 0 Then
Sheet4.Cells(i, 10).Value = "File Saved"
Else
Sheet4.Cells(i, 10).Value = "File Missing"
GoTo FileMissing
End If
FileMissing:
Next i
Application.ScreenUpdating = True
End Sub
なぜあなたはそれだけでレン(実際の値) – Lowpar
@Joshuaすべきではない(DIRをLENを入れている - i' 'の値は何であり、したがって、何? "Sheet4.Cells(i、1)'の値ですか? – ashleedawg
レン(Dir(ActualValue))をmsgboxに入れて入手したものを見るか、ローカルウィンドウを使って内容を確認してください – Lowpar