用VBA打开带密码的EXCEL文件代码,以及不显示更新提示和没有找到文件显示为空的代码~~

Sub 填写()
Dim pt As String
pt = Chr(39) & ThisWorkbook.Path & "\报告\"
For I = 4 To Range("a65536").End(xlUp).Row
If WorksheetFunction.IsError(pt & Cells(I, 13).Value) = False Then
Cells(I, 4).Value = "=" & pt & Cells(I, 13).Value
Cells(I, 5).Value = "=" & pt & Replace(Cells(I, 13).Value, "F", "G")
Cells(I, 6).Value = "=" & pt & Replace(Cells(I, 13).Value, "F", "H")
End If
Next
End Sub

1、这段代码如果引用的EXCEL有密码 而且密码都一样 该怎么修改呢?(例如密码为12345678900)
2、更新链接,但是不显示更新和不更新的对话框
3、如果没有找到引用的文件夹或者文件 引用的值为空又该怎么修改呢
能直接帮我编写出来吗?VBA 我不会

一、读取密码文件
在代码的循环(FOR)之前,加入一行代码:
n = ActiveWorkbook.Name '取得当前工作簿名字

在循环的开始(FOR下面),加入下面三行代码,先把目标工作簿打开
na=pt & Cells(I, 13)
Workbooks.Open Filename:=na, password:=123456 '打开密码为123456,如果该工作簿无密码则不影响打开
a=sheet1.range("a5"):b=sheet1.range("a6"):c=sheet1.range("a7")
Workbooks(n).Activate '激活工作簿

你的操作....
cells(i,4)a:cells(i,5)=b:cells(i,6)=c
操作时,应该直接把目标工作簿数据赋给几个变量,再由变量转给当前格中,不要用公式引用。

关闭刚才打开的工作簿
Workbooks(na).Close
NEXT

二、引用文件不存在
可考虑用错误转向语句 On Error GoTo 处理
如果不存在,就转到NEXT,取下一循环变量
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2020-12-10
HI我.本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网