永发信息网

谁能帮我注释一下这段代码啊。VBA小白看不懂,,越详细越好,谢谢您了

答案:2  悬赏:0  手机版
解决时间 2021-02-05 22:55
Sub 遍历()
Dim MyPath$, MyName$, m&, wb As Workbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False
MyPath = ThisWorkbook.Path & "\"
MyName = Dir(MyPath, vbDirectory)
Do While MyName <> ""
If MyName <> "." And MyName <> ".." Then
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
m = m + 1
With GetObject(MyPath & MyName & "\住房信息.xls")
If m = 1 Then
.Sheets(1).Copy
Set wb = ActiveWorkbook
wb.SaveAs ThisWorkbook.Path & "\合并.xls"
Else
.Sheets(1).Copy Before:=wb.Sheets(1)
wb.Save
End If
wb.ActiveSheet.Name = MyName
.Close False
End With
End If
End If
MyName = Dir
Loop
wb.Close True
Application.ScreenUpdating = True
MsgBox "ok"
End Sub
最佳答案
根据代码,在一个目录中存在N个子目录,且每个目录下都有一个名为:住房信息.xls的文件,要将所以的文件合并到一个工作薄,并将工作表名称更改为子目录名称。将合并后的文件保存为:合并.xls,并保存到当前文件所在的目录。
Sub 遍历()
Dim MyPath$, MyName$, m&, wb As Workbook    '变量声明 $为文本型,&为整数型
Application.ScreenUpdating = False          '禁止屏幕刷新  
Application.DisplayAlerts = False           '禁止出现任何错误提示
MyPath = ThisWorkbook.Path & "\"            '获取当前工作薄路径
MyName = Dir(MyPath, vbDirectory)           '开始查找第一项
Do While MyName <> ""                       '遍历
     If MyName <> "." And MyName <> ".." Then        '检查是否到末尾
         '判断当前是否是目录
         If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
             m = m + 1
             '然后打开该目录里的:住房信息.xls
             With GetObject(MyPath & MyName & "\住房信息.xls")
                 If m = 1 Then '如果第一次循环
                   .Sheets(1).Copy '则复制当前住户信息.xls的第一张工作表
                   Set wb = ActiveWorkbook '设定wb为活动工作薄
                   '并在当前路径存为:合并.xls
                   wb.SaveAs ThisWorkbook.Path & "\合并.xls"
                 Else '如果不是第一次循环
                 '则将 住户信息.xls的第一张工作表复制到 合并.xls的第一张工作表的最前面
                   .Sheets(1).Copy Before:=wb.Sheets(1)
                   wb.Save '保存wb
                 End If
                 wb.ActiveSheet.Name = MyName '当前工作表的名称命名为目录名称
                 .Close False '关闭wb
             End With
           End If
    End If
    MyName = Dir '下一个目录
Loop
   wb.Close True '关闭wb
   Application.ScreenUpdating = True '恢复屏幕更新
   MsgBox "ok" '弹出对话框,表示完成。
End Sub
全部回答
sub 宏1() '子程序 宏1() dim i, mypath$ '定义变量 i,mypath$ mypath = thisworkbook.path & "\" '获取当前文件的路径 'mypath= 当前工作簿的路径 & "\"'获取当前文件的路径 for i = 2 to 35 '设定变量范围为i=2到35 range("b" & i).select '<单元格>区域("b" & i )的选定 activesheet.pictures.insert(mypath & "f\" & range("a" & i) & ".jpg").select ' 活动工作表的图片集的<插入>(mypath & "f\" & <单元格>区域("a" & i) & ".jpg" )的选定 '在选中的位置插入图片 'mypath 相位的路径 'range("a" & i) 相片的文件名,如果相片用b列命名也可以的 '要有相片路径+名称+后缀 next i '下一个i end sub '子程序结束 sub 宏1() '子程序 宏1() dim i, mypath$, a1, a2, b1, b2 '定义变量 i,mypath$,a1,a2,b1,b2 dim pa as picture '定义变量 pa 为 picture mypath = thisworkbook.path & "\" '获取当前文件的路径 'mypath= 当前工作簿的路径 & "\"'获取当前文件的路径 application.screenupdating = false '关闭屏幕刷新(可以提高运行速度) for each pa in activesheet.pictures '设定变量范围为每一个pa位于 活动工作表的图片集 pa.delete ' pa的删除 next '下一个 for i = 2 to 35 '设定变量范围为i=2到35 a1 = 0: a2 = 0: b1 = 0: b2 = 0 'a1=0:a2=0:b1=0:b2=0 range("b" & i).select '<单元格>区域("b" & i )的选定 a1 = activecell.left 'a1= 活动单元格的左侧 a2 = activecell.top 'a2= 活动单元格的顶部 b1 = activecell.width 'b1= 活动单元格的宽度 b2 = activecell.height 'b2= 活动单元格的高度 activesheet.pictures.insert(mypath & "f\" & range("a" & i) & ".jpg").select ' 活动工作表的图片集的<插入>(mypath & "f\" & <单元格>区域("a" & i) & ".jpg" )的选定 selection.shaperange.lockaspectratio = false ' 被选项的shaperange的lockaspectratio=false selection.shaperange.left = a1 + 1 ' 被选项的shaperange的左侧=a1+1 selection.shaperange.top = a2 + 1 ' 被选项的shaperange的顶部=a2+1 selection.shaperange.width = b1 - 2 ' 被选项的shaperange的宽度=b1-2 selection.shaperange.height = b2 - 2 ' 被选项的shaperange的高度=b2-2 next i '下一个i application.screenupdating = true '开启屏幕刷新 msgbox "完成!" '<消息框>:"完成!" end sub '子程序结束
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
江楼夕望招客为什么高妙
一辆汽车运一堆沙子,计划每次运4.5吨,20次运
洗尘的意思是什么啊?知道的请说下!
台式机上网用5G路由器桥接然后接网线快还是装
1.25*3.7*0.08的简算
儿子欠钱跑了借条别人起诉父母无偿还能力会拿
崴子的意思是什么啊?知道的请说下!
1979年5月3日出生五行缺什么
轻骑金悦胜125为啥停产
【短期偿债能力】短期偿债能力指标会为0.2吗?
沈阳一手哈尔滨红肠纯吗
剿絶的意思是什么啊?知道的请说下!
聚春酒楼地址在什么地方,想过去办事
岳飞第4代子孙是谁?
以《我被误会了》为题。写一篇文章
推荐资讯
Entering a university is an important part
山西省夏县尉郭中学地址在什么地方,想过去办
史小坑的烦恼2第二十三关怎么把520变成250
广东大型红木家具厂家直销会怎么去啊,我要去
一个女的和一个男的在酒吧认识的,之后他们就
纵横江湖网吧怎么去啊,我要去那办事
吉首市第二幼儿园地址有知道的么?有点事想过
大豆卵磷脂中有雌激素吗?
简约发艺怎么去啊,我要去那办事
缘定今生映画摄影呈贡店在什么地方啊,我要过
【两只猪的爱情】两只小猪的爱情作文
兴隆巷村便民店地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?