hoi_joker84
Thành viên mới

- Tham gia
- 18/12/08
- Bài viết
- 16
- Được thích
- 14
- Nghề nghiệp
- Agent
Nhờ rút gọn Code!
Mình có đoạn code kiểm tra điều kiện để di chuyển file = FileSystemObject như dưới. Có phương án nào rút gọn được không? hoặc tối ưu hơn không?
Xin Cảm ơn
Mình có đoạn code kiểm tra điều kiện để di chuyển file = FileSystemObject như dưới. Có phương án nào rút gọn được không? hoặc tối ưu hơn không?
Xin Cảm ơn
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("$H$31:$H$33")) Is Nothing Then
Dim oFile As Object, FSO As Object, sDesPath As String, sSourcePath As String, arrFiles, i As Long
sDesPath = ThisWorkbook.Path
sSourcePath = sDesPath & "\#\Docs"
Set FSO = CreateObject("Scripting.FileSystemObject")
arrFiles = Array("HosoA.doc", _
"HosoB.doc", _
"HosoC.doc", _
"HosoD.doc", _
"HosoTest.doc", _
"ABC.doc", _
"BL.jpg", _
"Formalities.xls", _
"KHAI BAO.xls", _
"RRR.doc", _
"Template.xls")
If UCase(Trim([H31])) = "DIA DIEM 1" Or UCase(Trim([H31])) = "DIA DIEM 2" Then
If UCase(Trim([H32])) = "DIEU KIEN 1" Then
For i = 1 To 11
If i = 3 Or i = 4 Or i = 5 Or i = 6 Or i = 7 Then
If FSO.FileExists(sSourcePath & "\" & arrFiles(i)) Then FSO.movefile sSourcePath & "\" & arrFiles(i), sDesPath & "\" & arrFiles(i)
Else
If FSO.FileExists(sDesPath & "\" & arrFiles(i)) Then FSO.movefile sDesPath & "\" & arrFiles(i), sSourcePath & "\" & arrFiles(i)
End If
Next i
Else
For i = 1 To 11
If i = 10 Then
If FSO.FileExists(sSourcePath & "\" & arrFiles(i)) Then FSO.movefile sSourcePath & "\" & arrFiles(i), sDesPath & "\" & arrFiles(i)
Else
If FSO.FileExists(sDesPath & "\" & arrFiles(i)) Then FSO.movefile sDesPath & "\" & arrFiles(i), sSourcePath & "\" & arrFiles(i)
End If
Next i
End If
Else 'DIA DIEM 3
If UCase(Trim([H32])) = "DIEU KIEN 1" Then
For i = 1 To 11
If i = 1 Or i = 3 Or i = 4 Or i = 5 Or i = 6 Or i = 7 Or i = 8 Or i = 9 Or i = 11 Then
If FSO.FileExists(sSourcePath & "\" & arrFiles(i)) Then FSO.movefile sSourcePath & "\" & arrFiles(i), sDesPath & "\" & arrFiles(i)
Else
If FSO.FileExists(sDesPath & "\" & arrFiles(i)) Then FSO.movefile sDesPath & "\" & arrFiles(i), sSourcePath & "\" & arrFiles(i)
End If
Next i
Else
For i = 1 To 11
If i = 2 Or i = 10 Then
If FSO.FileExists(sSourcePath & "\" & arrFiles(i)) Then FSO.movefile sSourcePath & "\" & arrFiles(i), sDesPath & "\" & arrFiles(i)
Else
If FSO.FileExists(sDesPath & "\" & arrFiles(i)) Then FSO.movefile sDesPath & "\" & arrFiles(i), sSourcePath & "\" & arrFiles(i)
End If
Next i
End If
End If
Set oFile = Nothing
Set FSO = Nothing
End If
End Sub

