只有一行代码,帮忙找错
设N(5)是一个数组,并且在前面已经被赋值。那么下面这行代码错在哪里?sheet1.range("A1:A6")=N()
难道不能一次性将数组内的值写入A1到A6的单元格吗?
下面的运行正常的代码:
for i=0 to 5
sheet1.range("A" & i+1)=N(i)
next --------------------编程问答-------------------- 不能,就象本地数组直接也是无法用A()=B()来一次性赋值 --------------------编程问答-------------------- 该回复被版主删除 --------------------编程问答-------------------- 不能
数组直接不能直接赋值
可以使用循环 --------------------编程问答-------------------- 不能
range只是一个范围而以 --------------------编程问答-------------------- sheet1.range("A1:A6")=N()
这个不对,赋值错误! --------------------编程问答-------------------- try:
Dim DataArray(5,5) As Object
'给DataArray赋值,略......
Set oSheet.Range("A1").Resize(5, 5).Value = DataArray
--------------------编程问答-------------------- 这种方法向EXCEL导入数据比循环导入效率要高出N倍,具体可以参考MSDN中国网站
我在在ASP.NET程序中做过,VB下没试过,原理一样,语法略有不同,你多试试 --------------------编程问答-------------------- 应该是可以的
sheet1.range("A1:A6")=N 这样就应该可以了 --------------------编程问答-------------------- 哎?没有问题啊 我用了你的那种方法试过了 是可以将数据成批量的导进去的啊!
--------------------编程问答-------------------- 把N定义为Variant类型,否则无法直接给Range赋值 --------------------编程问答-------------------- [sheet1].range( "A1:A6 ")=N --------------------编程问答-------------------- [sheet1].range("A" & i+1)=N(i) --------------------编程问答-------------------- Sub Test()
Dim N(5, 0) As Integer '类型可以任意!!! 不一定要变体类型。
N(0, 0) = 0
N(1, 0) = 1
N(2, 0) = 2
N(3, 0) = 3
N(4, 0) = 4
N(5, 0) = 5
Sheet1.Range("A1:A6") = N
'Sheet1.Range("A1:A6") = N() '这样也可以
'看看Sheet1, OK ?!
End Sub --------------------编程问答-------------------- 用Sheet1.Range("A1:A6") = N 时,N必须是二维数组,即N(X,Y),X对应sheet中的行,Y对应列,否则无法导入 --------------------编程问答-------------------- 学习!
补充:VB , VBA