Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 宏未执行的部分代码_Vba_Excel - Fatal编程技术网

Vba 宏未执行的部分代码

Vba 宏未执行的部分代码,vba,excel,Vba,Excel,非常感谢你的帮助!不幸的是,我测试了您的代码,得到了以下错误消息:运行时错误9下标超出范围 事实上,这一行似乎导致了一个问题:Set wbThis=ThisWorkbook由于此问题,我当前的工作簿中似乎无法识别“Sheet1”(我通过即时窗口中的调试打印进行了检查),我查阅了以下主题:。这就是为什么我通过“Set-wbThis=ActiveWorkbook”修改了“Set-wbThis=ThisWorkbook”,在完成此修改并执行宏(这次我没有收到任何错误消息)后,excel文件“Parc

非常感谢你的帮助!不幸的是,我测试了您的代码,得到了以下错误消息:运行时错误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”


非常感谢您的帮助。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