|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
- Option Explicit
- Sub main()
- Call createNewSheet
- Sheets("NewSheet").Rows.ClearContents
- Dim i As Integer
- Dim wbFile As String, wbPath As String
- i = 0
- wbFile = Dir(ThisWorkbook.Path & "" & "*.xlsx")
- Do While wbFile <> "" And wbFile <> ThisWorkbook.Name
- i = i + 1
- Dim wbOpen As Workbook, wbNow As Workbook
- Set wbNow = ThisWorkbook
- Set wbOpen = Workbooks.Open(ThisWorkbook.Path & "" & wbFile)
- Call copyDataToALine(i, wbOpen, wbNow)
- wbOpen.Close savechanges:=False
- wbFile = Dir
- Loop
- Sheets("NewSheet").Columns(4).Delete
- Sheets("NewSheet").Columns(8).Insert
- For i = 4 To Sheets("教师").Range("C4").End(xlDown).Row
- Call copyDataToFacl(i)
- Next i
- End Sub
- Public Function copyDataToFacl(ByVal iFacl As Integer)
- Dim iRow As Integer
- For iRow = 1 To Sheets("NewSheet").Range("A1").End(xlDown).Row
- If Sheets("NewSheet").Cells(iRow, 1).Value = Sheets("教师").Cells(iFacl, 3).Value Then
- Dim iCol As Integer
- For iCol = 2 To 15
- Sheets("教师").Cells(iFacl, iCol + 4).Value = Sheets("NewSheet").Cells(iRow, iCol).Value
- Next iCol
- End If
- Next iRow
-
- End Function
- Public Function copyDataToALine(ByVal iNewSheetRow As Integer, ByVal wbSrc As Workbook, ByVal wbOrg As Workbook)
- Dim iRow As Integer, iNewSheetCol As Integer
- iNewSheetCol = 2
- wbOrg.Sheets("NewSheet").Cells(iNewSheetRow, 1).Value = wbSrc.Sheets("Sheet1").Cells(3, 2).Value
-
- For iRow = 5 To 19
- wbOrg.Sheets("NewSheet").Cells(iNewSheetRow, iNewSheetCol).Value = wbSrc.Sheets("Sheet1").Cells(iRow, 10).Value
- iNewSheetCol = iNewSheetCol + 1
- Next iRow
-
- End Function
- Public Function createNewSheet()
- Dim i As Integer, NewSheet As Boolean
- NewSheet = False
- For i = 1 To Worksheets.Count
- If Sheets(i).Name = "NewSheet" Then
- NewSheet = True
- End If
- Next i
-
- If NewSheet = False Then
- Worksheets.Add after:=Worksheets(Worksheets.Count)
- ActiveSheet.Name = "NewSheet"
- End If
- End Function
复制代码 |
|