Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 菜根谭

[已解决]急求哪位老师,不打开源文件,按文件名称,能自动链接不同文件夹中的表格。

[复制链接]
发表于 2014-9-24 14:54 | 显示全部楼层
分表原料的价格和总表的没有关系对不对?
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2014-9-24 15:12 | 显示全部楼层    本楼为最佳答案   
是的话,见附件,
如果还不对,请对附件中进行手动计算核对,应该不太可能出错

配方.rar

99.94 KB, 下载次数: 18

回复

使用道具 举报

 楼主| 发表于 2014-9-24 16:27 | 显示全部楼层
这儿有肥猫 发表于 2014-9-24 14:54
分表原料的价格和总表的没有关系对不对?

没有
回复

使用道具 举报

发表于 2014-9-24 20:52 | 显示全部楼层
这儿有肥猫 发表于 2014-9-24 15:12
是的话,见附件,
如果还不对,请对附件中进行手动计算核对,应该不太可能出错

肥猫兄,麻烦问一下,如何能保存带宏的excel为.xls?excel不会提示“不能保存宏”吗?需要另存为.xlsm才可以保存的啊。这个问题困惑我好久了,还有就是宏表函数也是,自定义名称后我想要保存必须是xlsm格式才可以,如果是xlsx格式的话,关闭再次打开,宏表函数的自定义名称会丢失,可我看别人保存的xls可以保存宏表函数的自定义名称啊。你的这个附件也是,xls文件中包含了宏,为什么我就存不了这样子的呢。谢谢帮我解答一下。
回复

使用道具 举报

发表于 2014-9-24 21:02 | 显示全部楼层
刘禹辰99 发表于 2014-9-24 20:52
肥猫兄,麻烦问一下,如何能保存带宏的excel为.xls?excel不会提示“不能保存宏”吗?需要另存为.xlsm才可 ...

2007版以前的excel都是xls结尾的,可以直接保存宏,从07版起强制以.xlsm的才可以保存宏,而xlsx不可以。你可以将xlsx保存成xls,打开一个xlsx,另存为excel97-2003工作簿,再写入宏就OK了
回复

使用道具 举报

发表于 2014-9-24 21:08 | 显示全部楼层
这儿有肥猫 发表于 2014-9-24 21:02
2007版以前的excel都是xls结尾的,可以直接保存宏,从07版起强制以.xlsm的才可以保存宏,而xlsx不可以。你 ...

明白了,非常感谢
回复

使用道具 举报

 楼主| 发表于 2014-9-25 07:50 | 显示全部楼层
这儿有肥猫 发表于 2014-9-24 15:12
是的话,见附件,
如果还不对,请对附件中进行手动计算核对,应该不太可能出错

您好,你给我的代码,如果表格的列(横)项到ai,竖项到75(竖项已改),下面的编码怎么改呀?
Sub a()
Application.ScreenUpdating = False
[d7:ai75].ClearContents
Dim arr, brr, crr, mypath$, myname$, i&, j&, rng, dic As Object, s&
Set dic = CreateObject("scripting.dictionary")
mypath = ThisWorkbook.Path
mypath = Left(mypath, Len(mypath) - 5) & "\配方档案\"

arr = Range("b7:ai75")
ReDim crr(1 To UBound(arr), 1 To 5)


For i = 4 To 8
    myname = ""
    myname = Dir(mypath & Cells(4, i) & Cells(5, i) & Cells(6, i) & ".xls")

    If myname <> "" Then

       With GetObject(mypath & myname)
            brr = .Sheets(1).Range("c13").CurrentRegion
            For j = 1 To UBound(brr)
                dic(brr(j, 2)) = brr(j, 4) + dic(brr(j, 2))
            Next
            .Close False
        End With


        For s = 1 To UBound(arr)

            crr(s, i - 3) = dic(arr(s, 1))
        Next

    End If

         dic.RemoveAll
         Erase brr
Next

[d7].Resize(UBound(crr), UBound(crr, 2)) = crr
Set dic = Nothing
Application.ScreenUpdating = False
End Sub


回复

使用道具 举报

 楼主| 发表于 2014-9-25 09:18 | 显示全部楼层
这儿有肥猫 发表于 2014-9-24 15:12
是的话,见附件,
如果还不对,请对附件中进行手动计算核对,应该不太可能出错

已经搞好了,谢谢您。是区域不对。
回复

使用道具 举报

 楼主| 发表于 2015-3-17 08:11 | 显示全部楼层
这儿有肥猫 发表于 2014-9-23 16:43
开启宏,点击按钮即可

您好,我电脑系统重做后,这个文件后,点击“点击运行”显示“运行时错误13”。
麻烦您给看看。
回复

使用道具 举报

发表于 2015-3-18 16:27 | 显示全部楼层
菜根谭 发表于 2015-3-17 08:11
您好,我电脑系统重做后,这个文件后,点击“点击运行”显示“运行时错误13”。
麻烦您给看看。

上传附件~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-3 09:31 , Processed in 0.510187 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表