繁体   English   中英

尝试复制工作表时超出范围错误

[英]Out range Error while trying to copy worksheet

整个宏应该从站点打开一个文件,然后复制特定的工作表并粘贴到另一个工作簿中。 到目前为止,宏已打开,但无法复制和粘贴,并引发“超出范围错误”错误。 我正在寻找解决该错误或打开工作簿,然后删除不想看到的多余工作表的方法。 任何帮助将不胜感激!

Public Sub OpenFileFromWeb()
' Define Workbook and Worksheet Variables
Dim wkbMyWorkbook As Workbook
Dim wkbWebWorkbook As Workbook
Dim wksWebWorkSheet As Worksheet
Set wkbMyWorkbook = ActiveWorkbook

' Open The Web Workbook
    Workbooks.Open ("http://path.path.com/path/site/path/test_Data.xls")
    Sheets("Sheet3").Select

' Set the Web Workbook and Worksheet Variables
Set wkbWebWorkbook = ActiveWorkbook
Set wksWebWorkSheet = ActiveSheet

' Choose Sheet to pull Data from
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy

' Copy The Web Worksheet To My Workbook and Rename
    wksWebWorkSheet.Copy After:=wkbMyWorkbook.Sheets(Sheets.Count)'-->error occurs here
    wkbMyWorkbook.Sheets(ActiveSheet.Name).Name = "MyNewWebSheet"

' Close the Web Workbook
    wkbMyWorkbook.Activate
    wkbWebWorkbook.Close

End Sub

试一下

Public Sub OpenFileFromWeb()

    Dim wkbMyWorkbook As Workbook
    Dim wkbWebWorkbook As Workbook
    Set wkbMyWorkbook = ThisWorkbook

    Set wkbWebWorkbook = Workbooks.Open("http://path.path.com/path/site/path/test_Data.xls")

    With wkbMyWorkbook
        wkbWebWorkbook.Sheets("Sheet3").Copy _
            After:=.Sheets(.Sheets.Count)
        .Sheets(.Sheets.Count).Name = "MyNewWebSheet"
    End With

    ' Close the Web Workbook
    wkbMyWorkbook.Activate
    wkbWebWorkbook.Close

End Sub

您只需要在sheets.countsheets.count要使用的工作簿sheets.count

我在这里整理了您的代码:

Public Sub OpenFileFromWeb()

    ' Define Workbook and Worksheet Variables
    Dim wkbMyWorkbook As Workbook
    Dim wkbWebWorkbook As Workbook
    Dim wksWebWorkSheet As Worksheet
    Set wkbMyWorkbook = ActiveWorkbook

    ' Open The Web Workbook and Set the Web Workbook and Worksheet Variables
    Set wkbWebWorkbook = Workbooks.Open("http://path.path.com/path/site/path/test_Data.xls")
    Set wksWebWorkSheet = wkbWebWorkbook.Sheets("Sheet3")

    ' Choose Sheet to pull Data from
    wksWebWorkSheet.Range("A1", Range("A1").End(xlToRight).End(xlDown)).Copy '''NOT SURE WHAT THIS IS FOR. DOESN'T SEEM TO BE REQUIRED!

    ' Copy The Web Worksheet To My Workbook and Rename
    wksWebWorkSheet.Copy after:=wkbMyWorkbook.Sheets(wkbMyWorkbook.Sheets.Count)
    wkbMyWorkbook.Sheets(ActiveSheet.Name).Name = "MyNewWebSheet"

    ' Close the Web Workbook
    wkbMyWorkbook.Activate
    wkbWebWorkbook.Close

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM