关于excel的一个问题,可能要用到VBA,所有积分都给您!
答案:3 悬赏:60 手机版
解决时间 2021-03-26 04:26
- 提问者网友:心牵心
- 2021-03-25 21:22
关于excel的一个问题,可能要用到VBA,所有积分都给您!
最佳答案
- 五星知识达人网友:胯下狙击手
- 2021-03-25 21:52
亲,首先将你的统计文件和所有人的总结文件放在同一个文件夹中。
打开你的Excel统计文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧对应的Sheet上双击,右侧空白处粘贴下面的代码。关闭VBA窗口。然后按“Alt+F8”打开宏窗口,选择刚插入的宏,点击“执行”。
Sub jcl()
Dim f, ff As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ff = fso.getfolder(ThisWorkbook.Path & "")
Dim rg As Range
For Each rg In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
For Each f In ff.Files
If f.Name <> ThisWorkbook.Name And Left(f.Name, 2) <> "~$" Then
If InStr(f.Name, rg.Value) > 0 Then rg.Offset(0, 1).Value = "是": Exit For Else rg.Offset(0, 1).Value = "否"
End If
Next f
Next
Set fso = Nothing
End Sub追问Sub jcl()
Dim f, ff As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ff = fso.getfolder(ThisWorkbook.Path & "C:\Users\Administrator\Desktop\a")
…………
End Sub
我把我的文件夹的地址加上了,可是路提示“路径名为找到”追答额……要这样指定文件夹:
Set ff = fso.getfolder("C:\Users\Administrator\Desktop\a\")
打开你的Excel统计文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧对应的Sheet上双击,右侧空白处粘贴下面的代码。关闭VBA窗口。然后按“Alt+F8”打开宏窗口,选择刚插入的宏,点击“执行”。
Sub jcl()
Dim f, ff As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ff = fso.getfolder(ThisWorkbook.Path & "")
Dim rg As Range
For Each rg In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
For Each f In ff.Files
If f.Name <> ThisWorkbook.Name And Left(f.Name, 2) <> "~$" Then
If InStr(f.Name, rg.Value) > 0 Then rg.Offset(0, 1).Value = "是": Exit For Else rg.Offset(0, 1).Value = "否"
End If
Next f
Next
Set fso = Nothing
End Sub追问Sub jcl()
Dim f, ff As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ff = fso.getfolder(ThisWorkbook.Path & "C:\Users\Administrator\Desktop\a")
…………
End Sub
我把我的文件夹的地址加上了,可是路提示“路径名为找到”追答额……要这样指定文件夹:
Set ff = fso.getfolder("C:\Users\Administrator\Desktop\a\")
全部回答
- 1楼网友:掌灯师
- 2021-03-25 23:12
提取表名,用函数最后获取结果
- 2楼网友:思契十里
- 2021-03-25 22:32
这个简单,我接受这个任务,一会发文件给你。
10 分钟做不好,先占位。你追问后我再发附件给你,可多得20分哈追问谢谢您!!追答
将附件放入材料那个文件夹,打开后在A列粘贴上真实姓名,双击 B1 单元格即可。代码如下Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address <> "$B$1" Then Exit Sub
Cancel = True
Dim Ra As Range, Pa$
Pa = ThisWorkbook.Path & "*"
For Each Ra In Range([A2], [A65536].End(3))
Ra.Offset(, 1) = IIf(Dir(Pa & Ra.Value & "*.*") = "", "否", "是")
Next
End Sub
追问
不好意思,在这里出了问题。我是菜鸟!追答你不能改代码,下面这句不能改。改了当然要出问题
Pa = ThisWorkbook.Path & "\*"
但可改成:Pa = "C:\Users…………\a\*"
省略号是你完善的路径
10 分钟做不好,先占位。你追问后我再发附件给你,可多得20分哈追问谢谢您!!追答
将附件放入材料那个文件夹,打开后在A列粘贴上真实姓名,双击 B1 单元格即可。代码如下Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address <> "$B$1" Then Exit Sub
Cancel = True
Dim Ra As Range, Pa$
Pa = ThisWorkbook.Path & "*"
For Each Ra In Range([A2], [A65536].End(3))
Ra.Offset(, 1) = IIf(Dir(Pa & Ra.Value & "*.*") = "", "否", "是")
Next
End Sub
不好意思,在这里出了问题。我是菜鸟!追答你不能改代码,下面这句不能改。改了当然要出问题
Pa = ThisWorkbook.Path & "\*"
但可改成:Pa = "C:\Users…………\a\*"
省略号是你完善的路径
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯