Excel VBA转置数组并声明到另一个工作表范围
我有一些Excel VBA代码,它根据input/计算生成一个数组,然后将值input到另一个表中。
我有这个工作,我的电子表格的一个版本,其中包含所有的计算在一张使用:
Range(Cells(4, "T"), Cells(4 + ball, "T")).Value = Application.Transpose(lon)
但是,当我尝试在另一个工作簿上使用这个工作簿时,该工作簿使用以下命令将值input到同一位置的另一张工作表中:
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")
中的Sheets("Calculations").Range
但Cells
指的是ActiveSheet
。
你可以做
Sheets("Calculations").Range(Sheets("Calculations").Cells(4, "T"), Sheets("Calculations").Cells(4 + ball, "T")).Value=Application.Transpose(lon)
或者(注意Cells对象之前的点)
With Sheets("Calculations") .Range(.Cells(4, "T"), .Cells(4 + ball, "T")).Value = Application.Transpose(lon) End With