从变量引用另一个工作簿中的工作表时,下标超出范围

坦齐·拉曼(Tanzir rahman)

查看图片:http : //s12.postimg.org/ov8djtuh9/Capture.jpg

上下文:尝试激活另一个工作簿中的工作表(变量:cSheet),然后从另一个工作簿中复制的数据中粘贴数据。每当我尝试直接使用变量激活(即Worksheets(Name).Activate)或尝试使用变量定义工作表然后激活它时,都会收到下标超出范围的错误。我还尝试了其他编码样式,例如使用“ With Worksheet”等,我的代码虽然更长了,但我还是重新开始了,因为每次我修复某些内容时,都会出问题。因此,坚持基本原则。任何帮助将不胜感激。

Sub GenSumRep()

Dim AutoSR As Workbook
Dim asrSheet As Worksheet
Dim tempWB As Workbook
Dim dataWB As Workbook
Dim SecName As String
Dim oldcell As String
Dim nsName As String
Dim cSheet As Worksheet

Set AutoSR = ActiveWorkbook
Set asrSheet = AutoSR.ActiveSheet

For a = 3 To 10

    SecName = asrSheet.Range("D" & a).Value

    If SecName <> "" Then

    Workbooks.Open Range("B" & a).Value
    Set tempWB = ActiveWorkbook
    'tempWB.Windows(1).Visible = False

    AutoSR.Activate

    Workbooks.Open Range("C" & a).Value
    Set dataWB = ActiveWorkbook
    'dataWB.Windows(1).Visible = False

    AutoSR.Activate

        'Copy paste data
        For b = 24 To 29
        oldcell = Range("C" & b).Value
            If b = 24 Then
            nsName = Trim(SecName) & " Data"
            Set cSheet = tempWB.Sheets(nsName)
            Else
            nsName = asrSheet.Range("B" & b).Value
            Set cSheet = tempWB.Sheets(nsName)
            End If

        'Copy
        dataWB.Activate
        Range(oldcell).Select
        Range(Selection, Selection.End(xlToRight)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy

        'Paste
        tempWB.Activate
        cSheet.Select
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Application.CutCopyMode = False

        b = b + 1
        Next b

    End If

a = a + 1

Next a

End Sub
拜伦·沃尔

出现此错误的原因仅一个:您提供的名称在集合中不存在!

根据您的代码,可能有两个原因:

  • 您的nsName变量包含隐藏的字符,即使看起来正确也可以使其与众不同。
  • 您在错误的工作簿中查找工作表。

根据您的评论,看来您在寻找错误的工作簿检查这些下标错误的一种好方法是迭代集合并打印出其中Names包含的内容。

Dim sht as Worksheet    
For Each sht In tempWB.Sheets
    Debug.Print sht.Name
Next sht

通常,希望摆脱对Select的调用Activate这样您就不必依赖接口来获取对象。请参阅这篇文章如何避免SelectActivate获取更多信息。

适用于您的代码的一个想法是直接分配工作簿,而无需ActiveWorkbook

Set tempWB = Workbooks.Open(asrSheet.Range("B" & a).Value)
Set dataWB = Workbooks.Open(asrSheet.Range("C" & a).Value)

代替:

    Workbooks.Open Range("B" & a).Value
    Set tempWB = ActiveWorkbook
    'tempWB.Windows(1).Visible = False

    AutoSR.Activate

    Workbooks.Open Range("C" & a).Value
    Set dataWB = ActiveWorkbook
    'dataWB.Windows(1).Visible = False

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从变量引用另一个工作簿中的工作表时,下标超出范围

来自分类Dev

VBA 错误:运行时错误:9 - 从另一个工作簿复制工作表时下标超出范围

来自分类Dev

在另一个工作簿中查找单元格地址,其值为:“运行时错误'9'下标超出范围”

来自分类Dev

在模块中引用外部工作表 - 下标超出范围

来自分类Dev

超出范围错误将数据从一个工作簿复制到另一个工作簿

来自分类Dev

超出范围错误将数据从一个工作簿复制到另一个工作簿

来自分类Dev

运行时错误 9,下标超出范围 - 尝试将信息复制到另一个工作表

来自分类Dev

下标超出范围-如何分配变量以引用工作表中的单元格

来自分类Dev

尝试引用活动工作簿中的另一个工作表

来自分类Dev

在另一个工作簿中引用单元格作为工作表的名称

来自分类Dev

尝试引用活动工作簿中的另一个工作表

来自分类Dev

需要帮助将范围从一个工作簿转移到另一个工作簿,每个范围都移到单独的工作表中

来自分类Dev

Excel UDF-引用另一个工作簿工作表时给出#Value错误

来自分类Dev

Excel UDF-引用另一个工作簿工作表时给出#Value错误

来自分类Dev

将工作表从一个工作簿合并到另一个工作簿时出错

来自分类Dev

从一个工作簿的工作表复制到另一个工作簿时出错

来自分类Dev

工作表数组下标超出范围

来自分类Dev

如何通过另一个工作簿中的 VBA 对象名称引用 Excel 工作表?

来自分类Dev

在另一个工作簿的公式中使用一个工作簿的引用

来自分类Dev

将单元格范围从一个工作簿工作表复制到另一个工作簿工作表

来自分类Dev

VBA:无法引用另一个工作表中的范围

来自分类Dev

选择工作簿时下标超出范围

来自分类Dev

尝试在另一个工作簿中的一个工作簿中执行宏时发生错误

来自分类Dev

excel链接到同一工作簿中的另一个工作表

来自分类Dev

将工作簿设置为全局变量 - 下标超出范围

来自分类Dev

将数据从工作簿(在文本框内)放到另一个工作簿(在工作表中)

来自分类Dev

将一个工作簿的多个工作表中的单元格复制到另一个工作簿中的多个工作表中

来自分类Dev

VBA,对于每个下一个-如果此工作簿中的工作表名称等于另一个工作簿中的工作表名称

来自分类Dev

使用变量引用另一个工作表中的单元格

Related 相关文章

  1. 1

    从变量引用另一个工作簿中的工作表时,下标超出范围

  2. 2

    VBA 错误:运行时错误:9 - 从另一个工作簿复制工作表时下标超出范围

  3. 3

    在另一个工作簿中查找单元格地址,其值为:“运行时错误'9'下标超出范围”

  4. 4

    在模块中引用外部工作表 - 下标超出范围

  5. 5

    超出范围错误将数据从一个工作簿复制到另一个工作簿

  6. 6

    超出范围错误将数据从一个工作簿复制到另一个工作簿

  7. 7

    运行时错误 9,下标超出范围 - 尝试将信息复制到另一个工作表

  8. 8

    下标超出范围-如何分配变量以引用工作表中的单元格

  9. 9

    尝试引用活动工作簿中的另一个工作表

  10. 10

    在另一个工作簿中引用单元格作为工作表的名称

  11. 11

    尝试引用活动工作簿中的另一个工作表

  12. 12

    需要帮助将范围从一个工作簿转移到另一个工作簿,每个范围都移到单独的工作表中

  13. 13

    Excel UDF-引用另一个工作簿工作表时给出#Value错误

  14. 14

    Excel UDF-引用另一个工作簿工作表时给出#Value错误

  15. 15

    将工作表从一个工作簿合并到另一个工作簿时出错

  16. 16

    从一个工作簿的工作表复制到另一个工作簿时出错

  17. 17

    工作表数组下标超出范围

  18. 18

    如何通过另一个工作簿中的 VBA 对象名称引用 Excel 工作表?

  19. 19

    在另一个工作簿的公式中使用一个工作簿的引用

  20. 20

    将单元格范围从一个工作簿工作表复制到另一个工作簿工作表

  21. 21

    VBA:无法引用另一个工作表中的范围

  22. 22

    选择工作簿时下标超出范围

  23. 23

    尝试在另一个工作簿中的一个工作簿中执行宏时发生错误

  24. 24

    excel链接到同一工作簿中的另一个工作表

  25. 25

    将工作簿设置为全局变量 - 下标超出范围

  26. 26

    将数据从工作簿(在文本框内)放到另一个工作簿(在工作表中)

  27. 27

    将一个工作簿的多个工作表中的单元格复制到另一个工作簿中的多个工作表中

  28. 28

    VBA,对于每个下一个-如果此工作簿中的工作表名称等于另一个工作簿中的工作表名称

  29. 29

    使用变量引用另一个工作表中的单元格

热门标签

归档