Arrays Excel VBA将数组转置并声明为另一个图纸范围

Arrays Excel VBA将数组转置并声明为另一个图纸范围,arrays,vba,excel,Arrays,Vba,Excel,我有一些Excel VBA代码,它根据输入/计算生成一个数组,然后将值输入到另一张表中 我的电子表格有一个版本,其中包含一张表上的所有计算,使用: Range(Cells(4, "T"), Cells(4 + ball, "T")).Value = Application.Transpose(lon) 但是,当我尝试在另一个工作簿上使用此选项时,该工作簿使用以下命令将值输入到同一位置的另一个工作表中: Sheets("Calculations").Range(Cells(4, "T"), Ce

我有一些Excel VBA代码,它根据输入/计算生成一个数组,然后将值输入到另一张表中

我的电子表格有一个版本,其中包含一张表上的所有计算,使用:

Range(Cells(4, "T"), Cells(4 + ball, "T")).Value = Application.Transpose(lon)
但是,当我尝试在另一个工作簿上使用此选项时,该工作簿使用以下命令将值输入到同一位置的另一个工作表中:

Sheets("Calculations").Range(Cells(4, "T"), Cells(4 + ball, "T")).Value = Application.Transpose(lon)
我得到一个错误:“运行时错误‘1004’:应用程序定义的错误或对象定义的错误”。我已经查过了,还对数组中的值进行了一些debug.print处理,以确保我理解这些值和长度,相信我的问题在于如何声明范围。然而,我似乎无法找到正确的实现方法

作为一种解决方法,我有一个For循环,将值粘贴到单元格中,但在我看来,有一种更干净的方法可以做到这一点

For n = 1 To ball
    Sheets("Calculations").Cells(4 + n, "T").Value = lon(n)
Next n

谢谢你的帮助

您的单元格对象未完全限定

当您的范围指的是
工作表(“计算”)
中的
工作表(“计算”)
时。范围但
单元格
指的是
活动工作表

你可以这样做

Sheets("Calculations").Range(Sheets("Calculations").Cells(4, "T"), Sheets("Calculations").Cells(4 + ball, "T")).Value=Application.Transpose(lon)
或(注意单元格对象前的点)


只是想利用
.cells
之前关于点的评论。重要的是不要忘记这些,否则在使用多个工作表时可能会出现一些错误。在使用
Range()
With()
语句时,由于没有添加
而导致了太多的麻烦。哇。谢谢你的帮助。我永远不会意识到细胞上的额外参考。我采纳了您的第一个建议,只是为了在将来查看代码时能够清楚地知道我引用的是什么,而且就像BruceWayne的笔记一样,在将来使用它们时,我可能会错过那些“.”。
With Sheets("Calculations")
    .Range(.Cells(4, "T"), .Cells(4 + ball, "T")).Value = Application.Transpose(lon)
End With