当前位置: 首页 > 知识库问答 >
问题:

VBA excel打开文件和复制工作表错误下标超出范围

郝池暝
2023-03-14

我正试图从另一个excel文件复制工作表到其中一个工作表,但我得到了一个下标超出范围的错误。此错误来自行'.worksheet(1).usedrange.copy thisworkbook.worksheets(“sheet1”).range(“a1”)‘。

Dim FileToOpen As Variant
Application.ScreenUpdating = False
FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a Excel File to Open", _
FileFilter:="Excel Files *.xlsx(*.xlsx),")
If VarType(FileToOpen) = vbBoolean Then
   MsgBox "No file selected", vbExclamation, "Sorry!"
    Exit Sub
End If
Debug.Assert VarType(FileToOpen) = vbString
With Application.Workbooks.Open(FileToOpen)
  .Worksheets(1).UsedRange.Copy ThisWorkbook.Worksheets("Sheet1").Range("A1")
  .Close
End With

共有1个答案

钱言
2023-03-14

下面试试

Dim FileToOpen As Variant
dim tempFile as workbook
dim tempWs as worksheet
dim thisWs as worksheet

Application.ScreenUpdating = False
set thisWs = ThisWorkbook.Worksheets("Sheet1")

FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a Excel File to Open", _
FileFilter:="Excel Files *.xlsx(*.xlsx),")
If VarType(FileToOpen) = vbBoolean Then
   MsgBox "No file selected", vbExclamation, "Sorry!"
   Exit Sub
End If
Debug.Assert VarType(FileToOpen) = vbString
set tempFile =Workbooks.Open(FileToOpen)
set tempWs  = tempFile.worksheets(1)

tempWs  .cells.Copy thisWs.Range("A1")
tempFile .close 

set tempFile = nothing
set tempWs  = nothing

Application.ScreenUpdating = true
 类似资料:
  • 非常感谢。最好的问候。

  • 我正在创建一个宏,它将从一个更大的工作簿中选择工作表,移动和保存这些工作表作为一个新的工作簿,然后移动到下一个集。 我创建了一个带有开始和结束值(由工作表索引号指定)的伪“数组”。 我遇到了一个“下标超出范围”的错误,在完成保存文件的部分后,但在将拉出下一组工作表的循环之前。

  • 我试着运行这个: 但是得到这个错误: 回溯(最后一次调用): 文件“C:\Users\Shakh\Desktop\Hello3.py”,第4行,在 打印(“Hallo”,sys.argv[1]) 索引器:列表索引超出范围

  • 我正在运行一个火花作业,我在spark-defaults.sh.设置了以下配置,我在名称节点中有以下更改。我有1个数据节点。我正在处理2GB的数据。 但我得到一个错误,说GC限制超过。 这是我正在编写的代码。 我甚至尝试了GroupByKey而不是也。但是我得到了同样的错误。但是,当我试图删除还原ByKey或GroupByKey我得到的输出。有人能帮我解决这个错误吗? 我是否也应该在hadoop中

  • 这是一个简单的宏代码,用于从一个工作簿复制范围A2直到最后一行,并将其粘贴到另一个工作簿中。我是一个新手,用谷歌搜索了很多页面,但未能帮助自己。代码粘贴如下- ' ' 结果-调试后,发现代码成功复制粘贴A2值。然而,它引发了运行时错误9:Subscript超出范围。当工作表(“Config”).Range(“A”)

  • 我已经连接了Oracle数据库。现在我要面对 我使用代码插入数据: 它只适用于前500条记录,然后我有错误Ora-1000。我总共有大约6000条记录。我发现一些主题说应该改变配置,但我不能改变配置。 有没有其他方法可以解决这个错误?