Page 1 of 1

สร้างเงือนไขเพื่อ next i กรณีที่ไม่มีค่า i ในช่วง loop For

Posted: Sun Apr 13, 2014 8:39 pm
by somkiatfem
ด้านล่างคือ code ที่ใช้เปิดไฟล์ที่ชื่อไฟล์ประกอบด้วย ปี เดือน วัน เช่น 2014 01 12 ปัญหาคือ เวลาวน

loop For i = 1 To 31 มันจะมีบางไฟล์ ที่เมื่อวน loop i ไปจะไม่พบ ไฟล์นั้นเพราะ เป็นวันหยุด ไฟล์จะมีเพียงวันจันทร์ถึงศุกร์

อยากสร้างเงื่อนไขที่จะข้าม i นั้นไปได้อย่างไรครับ

Option Explicit
Public Sub am()
Dim a As Single, k As Single, i As Single, j As Single
Dim b As Variant, c As Variant, d As Variant

a = 2014
For i = 1 To 12
If i = i < 10 Then
b = "0" & i
For j = 1 To 31
If j = i < 10 Then
c = "0" & i
Workbooks.Open "C:\Users\somkiat\Desktop\ccc\set-history_EOD_" & a & "-" & b & "-" & c & ""
Else
Workbooks.Open "C:\Users\somkiat\Desktop\ccc\set-history_EOD_" & a & "-" & b & "-" & j & ""
End If
Next j
Else
For k = 1 To 31
If k = i < 10 Then
d = "0" & i
Workbooks.Open "C:\Users\somkiat\Desktop\ccc\set-history_EOD_" & a & "-" & i & "-" & d & ""
Else
Workbooks.Open "C:\Users\somkiat\Desktop\ccc\set-history_EOD_" & a & "-" & i & "-" & k & ""
End If
Next k
End If
Next i
End Sub

Re: สร้างเงือนไขเพื่อ next i กรณีที่ไม่มีค่า i ในช่วง loop

Posted: Tue Apr 15, 2014 1:51 pm
by อรวีร์

Code: Select all

    Dim FN As String, Y As Integer, M As Integer, D As Integer
    Y = 2014
    For M = 1 To 12
        For D = 1 To Day(DateSerial(Y, M + 1, 0))
            FN = "C:\Users\somkiat\Desktop\ccc\set-history_EOD_" & Y & "-" & Right("0" & M, 2) & "-" & Right("0" & D, 2) & ".xlsx"
            If Len(Dir(FN)) > 0 Then Workbooks.Open FN
        Next
    Next
FN คือ ชื่อแฟ้มที่จะเปิด
ลอง Run ดูค่ะ