Vba 下标超出范围的中间编码错误

Vba 下标超出范围的中间编码错误,vba,excel,Vba,Excel,通常,如果出现下标超出范围的错误,就会出现拼写错误。这次我可以保证它没有拼错。我将工作簿和工作表的名称声明为变量,稍后用于简单的复制粘贴。但是,当我将其中一个工作表定义为Set main=wb.sheets(“Primary”)时,会出现错误,下标超出范围。我不相信这一点,所以我复制了我写的内容,并将其粘贴为工作表名称。同样的错误。因此,他们一定是我如何设置工作簿/工作表的问题。非常感谢您的帮助 Sub copyPaste() Dim wb As Workbook Dim main As Sh

通常,如果出现下标超出范围的错误,就会出现拼写错误。这次我可以保证它没有拼错。我将工作簿和工作表的名称声明为变量,稍后用于简单的复制粘贴。但是,当我将其中一个工作表定义为
Set main=wb.sheets(“Primary”)
时,会出现错误,下标超出范围。我不相信这一点,所以我复制了我写的内容,并将其粘贴为工作表名称。同样的错误。因此,他们一定是我如何设置工作簿/工作表的问题。非常感谢您的帮助

Sub copyPaste()

Dim wb As Workbook
Dim main As Sheets
Dim hypo As Sheets

Set wb = ThisWorkbook

Set main = wb.Sheets("Primary")
Set hypo = wb.Sheets("Hypo")

Application.CutCopyMode = False

wb.main.Range("D22:D46").Value = wb.main.Range("D22:D46").Value

End Sub

您需要的是
工作表
(单数)而不是
工作表
(复数)(
工作表
是工作表的集合)

这里不使用工作簿对象,因为它已经定义为工作表引用的一部分。换成这个

main.Range("D22:D46").Value = main.Range("D22:D46").Value

您需要的是
工作表
(单数)而不是
工作表
(复数)(
工作表
是工作表的集合)

这里不使用工作簿对象,因为它已经定义为工作表引用的一部分。换成这个

main.Range("D22:D46").Value = main.Range("D22:D46").Value

你确定你有
“Primary”
而没有,例如
“Primary”
?我肯定它们没有空格。你确定它们在同一个工作簿中吗?重新启动它。很好。呃。你确定你有
“Primary”
而没有,例如
“Primary”
?我肯定它们没有空格。你确定它们在同一个工作簿中吗?重新启动它。很好。呃。我测试的时候效果很好。不喜欢我给它起的任何名字。重新启动了它。很好。当我测试它时,它对我来说很好。不喜欢我给它起的任何名字。重新启动它。很好。啊