Dim x As IntegerFor x = 11 To 17Workbooks.Open ("d:\cjd\" & x & "文.xls")Workbooks("cjd.xlsm").Sheets(x & "").Range("b3:c34") = Workbooks(x & "文.xls").Sheets("sheet1").Range("b3:c34").Value
打开文件的密码都是ABCD. 在哪儿写?怎么办?
Application.Workbooks.Open(filename, , , , "ABCD")
可以这样打开带密码的文件。filename就是你的文件目录,比如你的是("d:\cjd\" & x & "文.xls")。
把所有文件用vba去除密码,然后用python中excel读写相关的包处理,比用vba快100倍。超过1000个文件或1G数据量时效果很明显。我8875个excel文件共6.45G,vba你这种算法花了22778秒,python只用了248秒,同一台dell台式电脑,I3-4310的CPU。
VBA技巧,你选中代码里不知道用法的部分,例如 Workbooks.Open ,按F1键,就出来帮助了,下面有说明和例子,一看就会。离线时按F2,看对象浏览器里的方法和属性也可以的。
多百度网页搜索也行。
excelhome论坛也有,方法很多,最后都找不到了我才来百度知道或stackoverflow问。一般stackoverflow能找到一些中文互联网上找不到的答案的,非常不错。就是国内访问很慢。
Open( _FileName_ , _UpdateLinks_ , _ReadOnly_ , _Format_ , _Password_ , _WriteResPassword_ , _IgnoreReadOnlyRecommended_ , _Origin_ , _Delimiter_ , _Editable_ , _Notify_ , _Converter_ , _AddToMru_ , _Local_ , _CorruptLoad_ )
其中:
_password_ 包含打开受保护工作簿所需密码的字符串。 如果省略此参数并且工作簿需要密码,则会提示用户输入密码。
_writerespassword_ 包含写入写保护的工作簿所需密码的字符串。 如果省略此参数并且工作簿需要密码,则将提示用户输入密码。
用逗号分隔参数时需要注意参数的位置
也可用password:="XXXX"指明参数名称追问
谢谢
workbooks.Open("a.xls",,,,"ABCD")
注意逗号的个数追问
请教:为什么复制你的代码也不行呢?
追答不行是什么意思,请粘贴你的代码,以及运行异常的拷屏
追问去除括号,呵呵
追问打开文件读取内容成功了,有个不完美的地方,每个文件都弹出是否保存,怎样才能不弹出呢,谢谢!!!
Workbooks.Close False
末尾添加false就不问是否保存了。
Workbooks.Open 方法 (Excel)
Workbooks.Open(fileFullName, 0, , , password)