Nhờ các Thầy giúp em chỉnh sửa code này thì như thế nào ah?
Đầu xuân Bính Thân 2016, Kính chúc toàn thể GPE an khang thịnh vượng!
Kể cũng lạ, có mỗi mình em online!
Em mở lần lượt từng file xls trong từng thư mục con của c:\data (6 file, nhỏ trong 6 thư mục con: HoiSo, PGDso03, PGDso04, PGDso07, PGDs009, PGDso10). Nhưng trong phần thủ tục DoTheJob thì em lại ko biết chỉnh như thế nào để khi mở file HoiSo.xls (PGDso03.xls, PGDso04.xls, PGDso07.xls, PGDso09.xls, PGDso10.xls) ra thì:
1. Đặt tên sheet (mỗi file chỉ có 1 sheet) theo giá trị của cell G1.
=> thì nó lại cứ lấy giá trị cell G1 của cái thằng workbook em có code.
2. Save as thành file khác có tên giống tên của sheet, lưu trữ cùng chỗ, thư mục con tương ứng.
3. Đóng lại.
Em mày mò rồi mà cứ loạn cả lên. Mong các thầy giúp sức, chỉ bảo ah?
Private myN As Long
Private myFiles() As String
Sub Dat_ten_theo_Sheet()
myN = 0
SearchFiles "c:\data", "*.xls", True '<- True for search subfolder...
If myN > 0 Then
DoTheJob
Else
MsgBox "No file found"
End If
End Sub
Private Sub DoTheJob()
Dim i As Long
For i = 1 To myN
With Workbooks.Open(myFiles(1, i) & "" & myFiles(2, i))
'.Sheets("Sheet1").Range("C12").Formula = ("Enter text here")
ActiveSheet.Name = Range("G1").Value
Dim tenWsVBA, tenWs As String
tenWsVBA = ActiveSheet.CodeName
tenWs = ActiveSheet.Name
'.SaveAs fileName:="c:\Data" & "" & tenWs & "" & .Sheets(1).Name & ".xls"
MsgBox "Hay xem lai!", vbOKOnly, "Bao loi"
.Close True
End With
Next
End Sub
Private Sub SearchFiles(ByVal myDir As String, ByVal myFileName As String, _
ByVal SearchSubFolder As Boolean)
Dim fso As Object, myFile As Object, myFolder As Object
Set fso = CreateObject("Scripting.FileSystemObject")
For Each myFile In fso.GetFolder(myDir).Files
If myFile.Name Like myFileName Then
myN = myN + 1
ReDim Preserve myFiles(1 To 2, 1 To myN)
myFiles(1, myN) = myDir
myFiles(2, myN) = myFile.Name
End If
Next
If SearchSubFolder Then
For Each myFolder In fso.GetFolder(myDir).Subfolders
SearchFiles myDir & "" & myFolder.Name, myFileName, SearchSubFolder
Next
End If
End Sub