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

BigDave_76

大家好,我是VBA的新手,对Excel来说还不算老,我正在尝试编写一个允许用户选择文件的宏,然后从该文件复制2个单独的数据范围并将其粘贴到原始活动工作簿。

好的,所以在检查了此内容之后,我将代码更改为:

Sub GetFastScanData()

'Add file name to Active Sheet
Dim intChoice As Integer
Dim strPath As String 

Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
intChoice = Application.FileDialog(msoFileDialogOpen).Show

If intChoice <> 0 Then
  strPath = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
  Cells(1, 1) = strPath

  'Open Source WorkBook
  Dim sourceWB As Workbook
  Set sourceWB = Application.Workbooks.Open(strPath)

  'Give names to items
  Dim Var1 As String
  Var1 = "BT16"

  Dim Var2 As Integer
  Var2 = 1

  Dim Var3 As String
  Var3 = "BU16"

  'Copy from Source to Target
  sourceWB.Sheets(Var2).Range("F1:F55000").Copy _
    Destination:=Workbooks.Sheets("PI-2 data").Range(Var1)

  sourceWB.Sheets(Var2).Range("I2:I55000").Copy _
    Destination:=Workbooks.Sheets("PI-2 data").Range(Var3)

  'Close Source WorkBook wo/Save
  sourceWB.Close False

End If

End Sub

我现在唯一的问题是,我认为由于12/9/2014 Windows更新而出现错误?编译错误:找不到数据


原始帖子:

我真的是VBA的新手,但我绝对不是Excel的新秀。我在尝试将数据从选定文件复制到当前工作簿的宏中遇到问题。我遇到宏的斜体部分超出范围的错误。任何帮助是极大的赞赏!

Sub GetFastScanData()

    'Add file name to Active Sheet
    Dim intChoice As Integer
    Dim strPath As String
    Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
    intChoice = Application.FileDialog(msoFileDialogOpen).Show
    If intChoice <> 0 Then
    strPath = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
    Cells(1, 65) = strPath

    'Open Source WorkBook
    Application.Workbooks.Open (strPath)

    'Give names to workbooks and items
    Dim Var1 As String, Var1R As String
    Var1 = ActiveWorkbook.Name
    Var1R = "BT16"

    Dim Var2 As String, Var2R As String
    Var2 = ActiveWorkbook.Name
    Var2R = 1

    Dim Var3 As String, Var3R As String
    Var3 = ActiveWorkbook.Name
    Var3R = "BU16"

    'Copy from Source to Target
    *sourceWB.Sheets(Var2R).Columns(6).EntireColumn.Copy _
    Destination:=Workbooks(Var1).Sheets("PI-2 data").Range(VarR1)*

    Sheets(Var2R).Columns(9).EntireColumn.Copy _
    Destination:=Workbooks(Var3).Sheets("PI-2 data").Range(Var3R)

    'Close Source WorkBook wo/Save
    Workbooks(Var2).Close False

    End If

End Sub
row

如果您要复制整列,则目标范围必须在第1行中。否则,没有足够的行来容纳您要粘贴的值(请记住,这将复制每行中的条目-全部1,048,576,而不仅仅是您实际使用的)。如果您只想复制部分列,则不要使用.EntireColumn

目前还不清楚是什么Var1Var2并且Var3是因为他们都结了同一工作簿的名称。虽然为每个工作分配了值ActiveWorkbook.Name,但在每次分配之间都不会更改活动工作簿,因此它们都将获得相同的值

编辑:更换.Columns(6).EntireColumn.Copy.Range("F2:F55000").Copy和替换.Columns(9).EntireColumn.Copy.Range("I2:I55000").Copy还有其他更好的方法可以做到这一点,但这是最容易理解的。

您仍然需要准确确定要复制内容的工作簿。sourceWB没有在任何地方定义,其他三个变量都与同一工作簿相关。

应该这样:

'Open Source WorkBook
Application.Workbooks.Open (strPath)

而是这样:

'Open Source WorkBook
Dim sourceWB As Workbook
Set sourceWB = Application.Workbooks.Open(strPath)

很难解释其含义Var1Var3意图。唯一明显的用法是用于存储该宏的工作簿,但是您可能会打开其他未在现有代码中明确引用的工作簿。如果它们旨在与其中存储有宏的工作簿相关,则:

'Give names to items
Dim Var1R As String
Var1R = "BT16"

Dim Var2R As Integer
Var2R = 1

Dim Var3R As String
Var3R = "BU16"

'Copy from Source to Target
sourceWB.Sheets(Var2R).Range("F2:F55000").Copy _
Destination:=ThisWorkbook.Sheets("PI-2 data").Range(VarR1)

sourceWB.Sheets(Var2R).Range("I2:I55000").Copy _
Destination:=ThisWorkbook.Sheets("PI-2 data").Range(Var3R)

'Close Source WorkBook wo/Save
sourceWB.Close False

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

将数据从一个工作簿复制到另一个工作簿工作表

来自分类Dev

将数据从一个工作簿复制到另一工作簿

来自分类Dev

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

来自分类Dev

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

来自分类Dev

将列从一个工作簿复制到另一个工作簿

来自分类Dev

从一个工作簿复制到另一个工作簿时遇到麻烦

来自分类Dev

通过 VBA 将工作簿的命名范围数据复制到另一个工作簿

来自分类Dev

复制范围从一个工作簿到另一个

来自分类Dev

将数据从一个 Excel 工作簿复制到另一个同时保留格式

来自分类Dev

将数据从一个工作簿中的工作表复制到另一个工作簿

来自分类Dev

从一个工作簿复制到另一个工作簿时出现运行时错误438

来自分类Dev

将数据从一个工作簿复制到其他工作簿

来自分类Dev

将数据从许多Excel工作簿复制到另一个Excel工作簿

来自分类Dev

将VBA代码从一个工作簿中的工作表复制到另一个工作簿?

来自分类Dev

没有宏将特定工作表从一个工作簿复制到另一个工作簿

来自分类Dev

excel-如何将所有工作表从一个工作簿复制到另一个工作簿

来自分类Dev

高级过滤器可将数据复制到另一个工作簿

来自分类Dev

如果使用宏满足某些条件,则将一些行从一个工作簿复制到另一个工作簿

来自分类Dev

将启用宏的工作表从一个工作簿复制到另一个“运行时错误“1004”

来自分类Dev

如何将Excel配色方案从一个工作簿复制到另一个工作簿

来自分类Dev

要从一个工作簿复制到另一个工作簿的宏-不起作用

来自分类Dev

将包含字符串的行从一个工作簿复制到另一个工作簿

来自分类Dev

将单元格值从一个工作簿复制到另一个工作簿

来自分类Dev

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

来自分类Dev

从一个工作簿到另一个工作簿的 Excel 宏数据传输

来自分类Dev

将宏和模块从一个工作簿复制到另一个工作簿,并使所有VBA工作在一个主工作簿中

来自分类Dev

将工作表复制到另一个工作簿

来自分类Dev

将工作表复制到另一个工作簿VBA

Related 相关文章

  1. 1

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

  2. 2

    将数据从一个工作簿复制到另一个工作簿工作表

  3. 3

    将数据从一个工作簿复制到另一工作簿

  4. 4

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

  5. 5

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

  6. 6

    将列从一个工作簿复制到另一个工作簿

  7. 7

    从一个工作簿复制到另一个工作簿时遇到麻烦

  8. 8

    通过 VBA 将工作簿的命名范围数据复制到另一个工作簿

  9. 9

    复制范围从一个工作簿到另一个

  10. 10

    将数据从一个 Excel 工作簿复制到另一个同时保留格式

  11. 11

    将数据从一个工作簿中的工作表复制到另一个工作簿

  12. 12

    从一个工作簿复制到另一个工作簿时出现运行时错误438

  13. 13

    将数据从一个工作簿复制到其他工作簿

  14. 14

    将数据从许多Excel工作簿复制到另一个Excel工作簿

  15. 15

    将VBA代码从一个工作簿中的工作表复制到另一个工作簿?

  16. 16

    没有宏将特定工作表从一个工作簿复制到另一个工作簿

  17. 17

    excel-如何将所有工作表从一个工作簿复制到另一个工作簿

  18. 18

    高级过滤器可将数据复制到另一个工作簿

  19. 19

    如果使用宏满足某些条件,则将一些行从一个工作簿复制到另一个工作簿

  20. 20

    将启用宏的工作表从一个工作簿复制到另一个“运行时错误“1004”

  21. 21

    如何将Excel配色方案从一个工作簿复制到另一个工作簿

  22. 22

    要从一个工作簿复制到另一个工作簿的宏-不起作用

  23. 23

    将包含字符串的行从一个工作簿复制到另一个工作簿

  24. 24

    将单元格值从一个工作簿复制到另一个工作簿

  25. 25

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

  26. 26

    从一个工作簿到另一个工作簿的 Excel 宏数据传输

  27. 27

    将宏和模块从一个工作簿复制到另一个工作簿,并使所有VBA工作在一个主工作簿中

  28. 28

    将工作表复制到另一个工作簿

  29. 29

    将工作表复制到另一个工作簿VBA

热门标签

归档