Vba 宏未执行的部分代码
非常感谢你的帮助!不幸的是,我测试了您的代码,得到了以下错误消息:运行时错误9下标超出范围 事实上,这一行似乎导致了一个问题:Set wbThis=ThisWorkbook由于此问题,我当前的工作簿中似乎无法识别“Sheet1”(我通过即时窗口中的调试打印进行了检查),我查阅了以下主题:。这就是为什么我通过“Set-wbThis=ActiveWorkbook”修改了“Set-wbThis=ThisWorkbook”,在完成此修改并执行宏(这次我没有收到任何错误消息)后,excel文件“Parc Vehicule Template.xls”打开,但指令rng.Copy wsThat.Range(“A1”)未执行,这意味着我的数据尚未从打开的初始工作簿复制到其他工作簿“Parc Vehicle Template.xls”Vba 宏未执行的部分代码,vba,excel,Vba,Excel,非常感谢你的帮助!不幸的是,我测试了您的代码,得到了以下错误消息:运行时错误9下标超出范围 事实上,这一行似乎导致了一个问题:Set wbThis=ThisWorkbook由于此问题,我当前的工作簿中似乎无法识别“Sheet1”(我通过即时窗口中的调试打印进行了检查),我查阅了以下主题:。这就是为什么我通过“Set-wbThis=ActiveWorkbook”修改了“Set-wbThis=ThisWorkbook”,在完成此修改并执行宏(这次我没有收到任何错误消息)后,excel文件“Parc
非常感谢您的帮助。Xavi设置您的对象,然后使用它们。你的生活会变得很轻松。如果我做同样的事情,我会这样做 这就是你想要的吗?(未经测试) 我还看到
Fname
和工作簿(“Parc Vehicle Template.xls”)
是不同的。如果这是故意的,那么我猜你是在尝试这个
Sub copysheet1tofileParcVehiculeTemplatefortherest()
Dim wbThis As Workbook, wbThat As Workbook, wbTmplt As Workbook
Dim wsThis As Worksheet, wsThat As Worksheet
Dim rng As Range
Dim fName As String
Set wbThis = ThisWorkbook
Set wsThis = wbThis.Sheets("Sheet1")
Set rng = wsThis.Range("A1:AZ10000")
fName = "\\ingfs05\data1\GBS Center \52 Migration\ Files\Parc auto Template.xls"
If Not IsWorkBookOpen(fName) Then
Set wbTmplt = Workbooks.Open(fName)
Set wbThat = Workbooks("Parc Vehicule Template.xls")
Set wsThat = wbThat.Sheets("PV template for the rest")
rng.Copy wsThat.Range("A1")
End If
End Sub
Function IsWorkBookOpen(FileName As String)
Dim ff As Long, ErrNo As Long
On Error Resume Next
ff = FreeFile()
Open FileName For Input Lock Read As #ff
Close ff
ErrNo = Err
On Error GoTo 0
Select Case ErrNo
Case 0: IsWorkBookOpen = False
Case 70: IsWorkBookOpen = True
Case Else: Error ErrNo
End Select
End Function
我不明白为什么在复印页1中都有
激活
,选择
,粘贴
行。。。和OpenFile subs。您是否尝试过单步执行代码?
Sub copysheet1tofileParcVehiculeTemplatefortherest()
Dim wbThis As Workbook, wbThat As Workbook, wbTmplt As Workbook
Dim wsThis As Worksheet, wsThat As Worksheet
Dim rng As Range
Dim fName As String
Set wbThis = ThisWorkbook
Set wsThis = wbThis.Sheets("Sheet1")
Set rng = wsThis.Range("A1:AZ10000")
fName = "\\ingfs05\data1\GBS Center \52 Migration\ Files\Parc auto Template.xls"
If Not IsWorkBookOpen(fName) Then
Set wbTmplt = Workbooks.Open(fName)
Set wbThat = Workbooks("Parc Vehicule Template.xls")
Set wsThat = wbThat.Sheets("PV template for the rest")
rng.Copy wsThat.Range("A1")
End If
End Sub
Function IsWorkBookOpen(FileName As String)
Dim ff As Long, ErrNo As Long
On Error Resume Next
ff = FreeFile()
Open FileName For Input Lock Read As #ff
Close ff
ErrNo = Err
On Error GoTo 0
Select Case ErrNo
Case 0: IsWorkBookOpen = False
Case 70: IsWorkBookOpen = True
Case Else: Error ErrNo
End Select
End Function