Vấn đề của em là do học vẹt mà ra. em mò từ mạng thì tự tạo ra một đoạn code giúp em tự động tạo thư mục và copy file cần thiết vào. Nhưng chạy đi chạy lại vẫn bị lỗi type mismatch. Em bí quá không biết sửa như thế nào. Mong anh em diễn đàn giúp đơn giùm:
Mã:
Sub create_folder()
Option Explicit
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim src As String, f1 As String, f2 As String, subno As String, hcm As String, r1 As String, r2 As String, OTR As String, OSP As String, DTR As String, DSP As String, ts As String, ss As String
Dim rng As Range
Dim l1 As Integer, l2 As Integer, i As Integer
Dim maxdate As Date
Dim Cell As Range
subno = Sheet1.Range("A1").Value
hcm = Sheet2.Cells(2, 5).Value
src = Sheet2.Cells(1, 5).Value
Set rng = Sheet2.Range("J1:J4")
f1 = hcm & Left(subno, 3)
f2 = hcm & subno
If Not fso.FolderExists(src & f1) Then
fso.CreateFolder src & f1
End If
src = src & f1 & "\"
If Not fso.FolderExists(src & f2) Then
fso.CreateFolder src & f2
End If
src = src & f2 & "\"
For Each Cell In rng.Cells
MkDir src & Cell.Value
Next Cell
l1 = Sheet1.Range("A" & Sheet1.Rows.Count).End(xlUp).Row
l2 = Sheet1.Range("B" & Sheet1.Rows.Count).End(xlUp).Row
r1 = Sheet1.Range("A3:A" & l1).Value
r2 = Sheet1.Range("B3:B" & l2).Value
ts = Sheet2.Cells(1, 2).Value
ss = Sheet2.Cells(2, 2).Value
maxdate = FileDateTime(ts & r1(1, 1))
OTR = ts & r1(1, 1)
For i = 1 To UBound(r1)
If FileDateTime(ts & r1(i, 1)) > maxdate Then
maxdate = FileDateTime(ts & r1(i, 1))
OTR = ts & r1(i, 1)
End If
Next i
DTR = src & Sheet2.Range("J2").Value
FileCopy OTR, DTR
DSP = src & Sheet2.Range("J1").Value
For i = 1 To UBound(r2)
OSP = ss & r2(i, 1)
FileCopy OSP, DSP
Next i
End Sub