日记首页
|
列表
|
添加日记
|
管理登陆
标题:思路问题
<div style="background: rgb(243, 243, 243); margin: 5px 20px; padding: 5px; border: 1px solid rgb(204, 204, 204); border-image: none;">思路的问题</div><div style="background: rgb(243, 243, 243); margin: 5px 20px; padding: 5px; border: 1px solid rgb(204, 204, 204); border-image: none;">在个人查询中,执行宏1</div><div style="background: rgb(243, 243, 243); margin: 5px 20px; padding: 5px; border: 1px solid rgb(204, 204, 204); border-image: none;">无法判断初一或初二等</div><div style="background: rgb(243, 243, 243); margin: 5px 20px; padding: 5px; border: 1px solid rgb(204, 204, 204); border-image: none;">干脆分三个子程序,初1初2初3?</div><div style="background: rgb(243, 243, 243); margin: 5px 20px; padding: 5px; border: 1px solid rgb(204, 204, 204); border-image: none;">Dim mypath<br>Sub 查询个人()<br> t1 = UserForm查询窗体.CheckBox1.Value 'TextBox1<br> t2 = UserForm查询窗体.CheckBox2.Value 'TextBox1 要注意指向窗体<br> t3 = UserForm查询窗体.CheckBox3.Value<br> If t1 = True And t2 = False And t3 = False Then<br> t = UserForm查询窗体.CheckBox1.Caption: mypath = ThisWorkbook.Path & "\" & t & "\"<br> Call 初1<br> End If<br> If t2 = True And t1 = False And t3 = False Then<br> t = UserForm查询窗体.CheckBox2.Caption: mypath = ThisWorkbook.Path & "\" & t & "\"<br> Call 初2<br> End If<br> If t3 = True And t1 = False And t2 = False Then<br> t = UserForm查询窗体.CheckBox3.Caption: mypath = ThisWorkbook.Path & "\" & t & "\"<br> Call 初3<br> End If<br>End Sub</div><div style="background: rgb(243, 243, 243); margin: 5px 20px; padding: 5px; border: 1px solid rgb(204, 204, 204); border-image: none;">Sub 初1()<br> Dim arr, brr, d, i&, j%<br> Set d = CreateObject("scripting.dictionary")<br> On Error Resume Next<br> Application.ScreenUpdating = False<br> Application.DisplayAlerts = False<br> wj = Dir(mypath & "*.xls*")<br> Worksheets(1).Range("b3:c3").ClearContents<br> Worksheets(1).Range("a4:c10000").ClearContents<br> arr = Worksheets(1).Range("a1:v3")<br> s = [{"数学","2";"语文","3"}]<br> Do While wj <> ""<br> If wj <> ThisWorkbook.Name Then<br> With Workbooks.Open(mypath & wj)<br> For n = 1 To UBound(s)<br> If InStr(wj, s(n, 1)) Then<br> j = s(n, 2)<br> End If<br> Next<br> brr = .Sheets(.Sheets.Count).UsedRange<br> ncm = .Sheets(.Sheets.Count).Range("d1:aa1").Find(what:="姓名", lookat:=xlWhole).Column<br> For i = 1 To UBound(brr)<br> d(brr(i, ncm)) = i<br> Next<br> For i = 1 To UBound(arr)<br> xm = Trim(UserForm查询窗体.TextBox1.Text)<br> If xm <> "" Then<br> If d.Exists(xm) Then<br> m = d(xm)<br> arr(3, 1) = xm<br> arr(3, j) = brr(m, ncm + 2)<br> Else<br> arr(3, j) = "/"<br> End If<br> End If<br> Next<br> d.RemoveAll<br> .Close 0<br> End With<br> End If<br> wj = Dir<br> Loop<br> Worksheets(4).Range("a1").Resize(UBound(arr), UBound(arr, 2)) = arr<br> Columns("A:G").AutoFit<br> Application.ScreenUpdating = True<br> Application.DisplayAlerts = True<br> Sheet4.Activate<br> Selection.Merge<br> Range("A1:A2").Merge 'A1:A2合并</div><div style="background: rgb(243, 243, 243); margin: 5px 20px; padding: 5px; border: 1px solid rgb(204, 204, 204); border-image: none;">[A1].Value = "姓名"<br>[B1].Value = "数学"<br>[C1].Value = "语文"</div><div style="background: rgb(243, 243, 243); margin: 5px 20px; padding: 5px; border: 1px solid rgb(204, 204, 204); border-image: none;"><br> Dim t As Integer<br> For t = 2 To 3<br> Cells(2, t).Value = "剩余课时" '用循环赋值“剩余课时”<br> With Cells(2, t).Font '设置单元格格式<br> .Name = "宋体"<br> .FontStyle = "bold"<br> .Size = 12 '字体大小<br> .ColorIndex = 12 '字体颜色<br> End With<br> Next<br> ActiveSheet.UsedRange.Borders.LineStyle = 1 '对已用区域添加边框<br> With Selection<br> ActiveSheet.UsedRange.HorizontalAlignment = xlRight '对已用区域左对齐<br> End With<br>End Sub</div><div style="background: rgb(243, 243, 243); margin: 5px 20px; padding: 5px; border: 1px solid rgb(204, 204, 204); border-image: none;"><br>Sub 初2()<br> Dim arr, brr, d, i&, j%<br> Set d = CreateObject("scripting.dictionary")<br> On Error Resume Next<br> Application.ScreenUpdating = False<br> Application.DisplayAlerts = False<br> wj = Dir(mypath & "*.xls*")<br> Worksheets(1).Range("b3:e3").ClearContents<br> Worksheets(1).Range("a4:e10000").ClearContents<br> arr = Worksheets(1).Range("a1:e3")<br> s = [{"数学","2";"物理","3";"英语","4";"语文","5"}]<br> Do While wj <> ""<br> If wj <> ThisWorkbook.Name Then<br> With Workbooks.Open(mypath & wj)<br> For n = 1 To UBound(s)<br> If InStr(wj, s(n, 1)) Then<br> j = s(n, 2)<br> End If<br> Next<br> brr = .Sheets(.Sheets.Count).UsedRange<br> ncm = .Sheets(.Sheets.Count).Range("d1:aa1").Find(what:="姓名", lookat:=xlWhole).Column<br> For i = 1 To UBound(brr)<br> d(brr(i, ncm)) = i<br> Next<br> For i = 1 To UBound(arr)<br> xm = Trim(UserForm查询窗体.TextBox1.Text)<br> If xm <> "" Then<br> If d.Exists(xm) Then<br> m = d(xm)<br> arr(3, 1) = xm<br> arr(3, j) = brr(m, ncm + 2)<br> Else<br> arr(3, j) = "/"<br> End If<br> End If<br> Next<br> d.RemoveAll<br> .Close 0<br> End With<br> End If<br> wj = Dir<br> Loop<br> Worksheets(4).Range("a1").Resize(UBound(arr), UBound(arr, 2)) = arr<br> Columns("A:G").AutoFit<br> Application.ScreenUpdating = True<br> Application.DisplayAlerts = True<br> Sheet4.Activate<br> Selection.Merge<br> Range("A1:A2").Merge 'A1:A2合并</div><div style="background: rgb(243, 243, 243); margin: 5px 20px; padding: 5px; border: 1px solid rgb(204, 204, 204); border-image: none;">[A1].Value = "姓名"<br>[B1].Value = "数学"<br>[C1].Value = "物理"<br>[D1].Value = "英语"<br>[E1].Value = "语文"</div><div style="background: rgb(243, 243, 243); margin: 5px 20px; padding: 5px; border: 1px solid rgb(204, 204, 204); border-image: none;"> Dim t As Integer<br> For t = 2 To 5<br> Cells(2, t).Value = "剩余课时" '用循环赋值“剩余课时”<br> With Cells(2, t).Font '设置单元格格式<br> .Name = "宋体"<br> .FontStyle = "bold"<br> .Size = 12 '字体大小<br> .ColorIndex = 12 '字体颜色<br> End With<br> Next<br> ActiveSheet.UsedRange.Borders.LineStyle = 1 '对已用区域添加边框<br> With Selection<br> ActiveSheet.UsedRange.HorizontalAlignment = xlRight '对已用区域左对齐<br> End With<br>End Sub</div><div style="background: rgb(243, 243, 243); margin: 5px 20px; padding: 5px; border: 1px solid rgb(204, 204, 204); border-image: none;">Sub 初3()<br> Dim arr, brr, d, i&, j%<br> Set d = CreateObject("scripting.dictionary")<br> On Error Resume Next<br> Application.ScreenUpdating = False<br> Application.DisplayAlerts = False<br> wj = Dir(mypath & "*.xls*")<br> Worksheets(1).Range("b3:g3").ClearContents<br> Worksheets(1).Range("a4:g10000").ClearContents<br> arr = Worksheets(1).Range("a1:g3")<br> s = [{"数学","2";"物理","3";"英语","4";"语文","5";"历史","6";"化学","7"}]<br> Do While wj <> ""<br> If wj <> ThisWorkbook.Name Then<br> With Workbooks.Open(mypath & wj)<br> For n = 1 To UBound(s)<br> If InStr(wj, s(n, 1)) Then<br> j = s(n, 2)<br> End If<br> Next<br> brr = .Sheets(.Sheets.Count).UsedRange<br> ncm = .Sheets(.Sheets.Count).Range("d1:aa1").Find(what:="姓名", lookat:=xlWhole).Column<br> For i = 1 To UBound(brr)<br> d(brr(i, ncm)) = i<br> Next<br> For i = 1 To UBound(arr)<br> xm = Trim(UserForm查询窗体.TextBox1.Text)<br> If xm <> "" Then<br> If d.Exists(xm) Then<br> m = d(xm)<br> arr(3, 1) = xm<br> arr(3, j) = brr(m, ncm + 2)<br> Else<br> arr(3, j) = "/"<br> End If<br> End If<br> Next<br> d.RemoveAll<br> .Close 0<br> End With<br> End If<br> wj = Dir<br> Loop<br> Worksheets(4).Range("a1").Resize(UBound(arr), UBound(arr, 2)) = arr<br> Columns("A:G").AutoFit<br> Application.ScreenUpdating = True<br> Application.DisplayAlerts = True<br> Sheet4.Activate<br> 'Call 合并单元格指定位置<br> 'Call 写入单元格课时查询<br> 'Call 复制<br> 'Call 边框线<br> Call 抬头目录 '组合了上面4个模块<br>End Sub</div>