Giúp đỡ: Điều kiện trong vòng lặp

Liên hệ QC

vumian

Mỗi bậc thang là mỗi Cell
Tham gia
12/3/07
Bài viết
267
Được thích
186
Nghề nghiệp
employee only, not a boss
Mã:
Sub OpenFile_B()
   m = InputBox("nhap m " , "Thong bao")   
   vPartFname = Array("a", "b", "c")
   For i = LBound(vPartFname) To UBound(vPartFname) Step 1
      fTail = " Filename - " & m & ".xls"
      f = vPartFname(i) & fTail
      sFile = ThisWorkbook.Path & "\" & f
      If Dir(sFile, vbNormal) = vbNullString Then
            MsgBox "File khong ton tai", vbCritical, "Error"
         Exit Sub
      End If
Next i
End sub
' Hành động nếu cả 3 file a,b,c tồn tại ở đây

Code Trên nếu file a, hay b không tồn tại hoặc sai tên thì nó exit sub luôn, mình làm sao để khi nó không tòn tại hoặc sai tên thì nó nhảy tiếp đến file c, nếu c không tồn tại thì mới exit sub

Cám ơn nhiều
 
Lần chỉnh sửa cuối:
vumian đã viết:
Mã:
' Hành động nếu cả 3 file a,b,c tồn tại ở đây

Code Trên nếu file a, hay b không tồn tại hoặc sai tên thì nó exit sub luôn,

Với yêu cầu cả 3 file tồn tại thì mới hành động. vậy một trong 3 không tồn tại thì nó Exit là đúng rồi còn gì nữa????

Có lẽ bác phải clear câu hỏi hơn chút nữa.

Thân.
 
Tức là nếu file nào hôg tồn tại hoac sai tên đã định sẳn thì msgbox thôi, ý mình hỏi là cái Exit sub cuối đó, giả sử nếu file : b - filename hôg tôn tại thì nó exit sub mất rùi, mình muốn là nó vẫn phải tìm đến file c-filename ?
 
Vậy thì với yêu cầu là cả 3 file phải tồn tại, bác cho một biến = 3 (giả sử 3 file tồn tại) cứ msgbox một phát thì bác -1
totalfile = 3
...
MsgBox "File khong ton tai", vbCritical, "Error"
totalfile = totalfile -1
.....

if totalfile = 3 then
' Hành động nếu cả 3 file a,b,c tồn tại ở đây
else
Exit Sub
...
 
Thì bạn đưa câu lệnh Exit Sub ra khỏi vòng lặp For...Next thôi! Thêm một biến điều kiện để kiểm tra.
 
Lần chỉnh sửa cuối:
Dauphải vậy, giả sử file a ton tại, b va c thì hong, thì thực hiện hành động cho file a, và msgbox cho b và c

Giả sử b hôg tại, thì thực a và c, msgbox là hong ton tai b, nhung code mình ở trên là msgbox b hôg tồn tại thì thoát luôn, hôg thực hiện code cho c
 
code em chưa cấu trúc đúng sao??? Rõ hơn nhé

Vậy thì với yêu cầu là cả 3 file phải tồn tại, bác cho một biến = 3 (giả sử 3 file tồn tại) cứ msgbox một phát thì bác -1

Mã:
...
totalfile = 3
if dir(...) = vbnullstring then
MsgBox "File khong ton tai", vbCritical, "Error"
totalfile = totalfile -1
else
' code nếu file tồn tại
end if

if totalfile = 3 then 
' Hành động nếu cả 3 file a,b,c tồn tại ở đây
else
Exit Sub
end if
 
Không nhất thiết phải tồn tại cả 3 file cùng lúc mà,
Tồn tại 1, 2 hay 3 cũng duoc, miển sao cái nào thiếu thì msgbox thôi
 
vumian đã viết:
Không nhất thiết phải tồn tại cả 3 file cùng lúc mà,
Tồn tại 1, 2 hay 3 cũng duoc, miển sao cái nào thiếu thì msgbox thôi

Vậy em nghĩ bác xài cái này, đâu cần phải exit Sub đâu nhỉ.

Mã:
...
if dir(...) = vbnullstring then
MsgBox "File khong ton tai", vbCritical, "Error"
else
' code nếu file tồn tại
end if
 
Lần chỉnh sửa cuối:
vumian đã viết:
Mã:
Sub OpenFile_B()
   m = InputBox("nhap m " , "Thong bao")   
   vPartFname = Array("a", "b", "c")
   For i = LBound(vPartFname) To UBound(vPartFname) Step 1
      fTail = " Filename - " & m & ".xls"
      f = vPartFname(i) & fTail
      sFile = ThisWorkbook.Path & "\" & f
      If Dir(sFile, vbNormal) = vbNullString Then
            MsgBox "File khong ton tai", vbCritical, "Error"
         Exit Sub
      End If
Next i
End sub
' Hành động nếu cả 3 file a,b,c tồn tại ở đây
Code Trên nếu file a, hay b không tồn tại hoặc sai tên thì nó exit sub luôn, mình làm sao để khi nó không tòn tại hoặc sai tên thì nó nhảy tiếp đến file c, nếu c không tồn tại thì mới exit sub

Cám ơn nhiều

Thử xem nhé :

PHP:
Sub OpenFile_B()
    Dim m As String
    Dim vpartFname
    Dim SFile
    Dim i As Integer
    Dim FindFile As Boolean
    FindFile = False
    m = InputBox("nhap m ", "Thong bao")
    vpartFname = Array("a", "b", "c")
    For i = LBound(vpartFname) To UBound(vpartFname) Step 1
        SFile = ThisWorkbook.Path & "\" & vpartFname(i) & " Filename - " & m & ".xls"
        If Not Dir(SFile, vbNormal) = vbNullString Then FindFile = True: Exit For
    Next i
    If FindFile = False Then
        MsgBox "File khong ton tai", vbCritical, "Error"
    Else
        ' Lam Cai Gi Day
    End If
End Sub


Thân!
 
Dear all,

Mình làm được rồi , cám ơn nhiều lắm

vumian
 
Web KT
Back
Top Bottom