中易网

能不能把这段代码修改一下 从选择文件夹改成选择工作簿(根据工作簿多少可单选可多选)

答案:2  悬赏:30  
解决时间 2021-02-18 00:11
Sub 获取文件夹()
Dim p$, f$, sh As Worksheet, R&, m&
With Application.FileDialog(4)
.Title = "选择文件夹"
.InitialFileName = Application.DefaultFilePath & "\"
.Show
If .SelectedItems.Count = 0 Then Exit Sub
p = .SelectedItems(1) & "\"
End With
Application.ScreenUpdating = False
Set sh = ActiveSheet
p = ThisWorkbook.Path & "\"
f = Dir(p & "*.xlsx")
sh.UsedRange.Offset(3).ClearContents
Do While f <> ""
If f <> ThisWorkbook.Name Then
m = m + 1
If m = 1 Then R = 4 Else R = sh.Cells(sh.Rows.Count, 2).End(xlUp).Row + 1
With Workbooks.Open(p & f, 0)
.Sheets("成功").Range("4:" & .Sheets("成功").Cells(65536, 1).End(xlUp).Row).Copy sh.Cells(R, 1)
.Close False
End With
End If
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "哇塞,成功了!!!", 64, "提示"
End Sub
最佳答案
不是很懂你问题,我给你写了一个例子代码,你运行一下看看是不是你要的效果,然后把你的打开文件处理的代码添加到for each里面就可以了:
Sub 获取文件夹()
    Dim p
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "选择xxx工作薄(使用CTRL、SHIFT可多选)"
        .Filters.Clear
        .Filters.Add "EXCEL文件", "*.xls*"
        .Show
        For Each p In .SelectedItems
            MsgBox p
        Next p
    End With
End Sub
全部回答
sub t() dim str str=thisworkbook.path msgbox right(str, len(str) - instrrev(str, "\")) end sub用路径整理下就是文件夹了啊~
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大庆 商贸高层 入哪个小学中学
金额一亿,贷款期限(1-5年),年利率款15%,
DZ论坛怎么自动更新缓存
微信公众号怎么输入电脑端微信公众平台
亮亮商行在哪里啊,我有事要去这个地方
为什么有些公司会禁止办公室恋情
鲫鱼炖鸡的做法 鲫鱼可以炖鸡吗?
电脑内存少了2G 怎么回事?
癌细胞有不死性,能否沿用到人类的生命学??
长虹保真店地址有知道的么?有点事想过去
你他妈很嚣张小子你混哪里的 这是什么歌
狐狸后腿瘫痪尿湿狐狸后腿瘫痪尿湿一
曲槛迥廓 怎么读
那一种白天晚上都能看清楚的车用倒车摄像头
负压鱼缸上边的缸水怎样循环
推荐资讯
是侠盗猎车手3好玩还是罪恶都市好玩?
怎么把声音控制的喇叭调到通知栏..
今天是周四,小明28天后过生日,小明周几过生日
使命召唤9 一运行游戏遇到这个问题
狮跑换嘉实多极护后噪音增大
飞机场 的场务工作怎么样,工资待遇如何?求
山东华龙纺织公司二分厂怎么去啊,有知道地址
潍坊牧校附近有租房子的么?
杂技节目立绳难度介绍
水洞子在哪里啊,我有事要去这个地方
利用4个碳以下的有机物原料,合成
天枰男人是真优雅还是骚包?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?