部分代码如下
Do While Not rs.EOF
For j = 0 To UBound(head)
mySheet.Cells(curRow, j + 1) = rs(head(j))
Next j
curRow = curRow + 1
n = n + 1
rs.MoveNext
If n > 65535 Then
i = i + 1
If Not SheetExists(objname & i) Then
Call CreateSheet(objname, i)
End If
Set mySheet = Worksheets(objname & i)
mySheet.Cells.Clear
Call showhead(mySheet, head)
curRow = 2
n = 0
End If
Loop
其中UBound的最大值是8,但是当curRow为32767的时候,提示溢出,看j编程了9
请教怎么解决问题。
6 个解决方案
#1
For j = 0 To UBound(head)
修改为
For j = LBound(head) To UBound(head)
试试
修改为
For j = LBound(head) To UBound(head)
试试
#2
谢谢,知道是什么原因了,还想请教一下,怎么把某一列变成是日期格式,因为我从数据库里面取出来的数据是:2011/08/01 11:12:01这种形式的,需要怎么转化才能在工作表中正确的显示?
#3
把数据格式化一下.yyyy-m-d hh:mm:ss.
#4
如楼上所说,
如果你的数据库中的数据是日期型的,那么用格式化函数就可以搞定了,format函数,用法自己查一下吧。
如果你数据库中是字符串格式,那么就需要特殊的字符串处理了。
至于excel的显示,只是一个显示样子而已,不管你是日期还是字符串,显示对了就成了。
如果你的excel单元格还要参与运算,才需要把样式格式设置的符合你的要求。
如果你的数据库中的数据是日期型的,那么用格式化函数就可以搞定了,format函数,用法自己查一下吧。
如果你数据库中是字符串格式,那么就需要特殊的字符串处理了。
至于excel的显示,只是一个显示样子而已,不管你是日期还是字符串,显示对了就成了。
如果你的excel单元格还要参与运算,才需要把样式格式设置的符合你的要求。
#5
我想的一种办法是,将取出来的数据全部转化成字符串的形式,然后显示出来,这样应该就不会出问题了把! 但是不知道这样行不行,代码也不知道怎么写,还要请教大家帮忙啊!
#6
举个日期字段的例子:
如果你的数据库中的数据存储就是date类型的,那么从recordset中获取的数据,要经过format格式赋值给单元格的value或者text属性,如下:
如果你的数据库中的数据存储就是date类型的,那么从recordset中获取的数据,要经过format格式赋值给单元格的value或者text属性,如下:
mySheet.Cells(curRow, j + 1).text = format(rs(head(j)),"YYYY-MM-DD HH:MM:SS")
#1
For j = 0 To UBound(head)
修改为
For j = LBound(head) To UBound(head)
试试
修改为
For j = LBound(head) To UBound(head)
试试
#2
谢谢,知道是什么原因了,还想请教一下,怎么把某一列变成是日期格式,因为我从数据库里面取出来的数据是:2011/08/01 11:12:01这种形式的,需要怎么转化才能在工作表中正确的显示?
#3
把数据格式化一下.yyyy-m-d hh:mm:ss.
#4
如楼上所说,
如果你的数据库中的数据是日期型的,那么用格式化函数就可以搞定了,format函数,用法自己查一下吧。
如果你数据库中是字符串格式,那么就需要特殊的字符串处理了。
至于excel的显示,只是一个显示样子而已,不管你是日期还是字符串,显示对了就成了。
如果你的excel单元格还要参与运算,才需要把样式格式设置的符合你的要求。
如果你的数据库中的数据是日期型的,那么用格式化函数就可以搞定了,format函数,用法自己查一下吧。
如果你数据库中是字符串格式,那么就需要特殊的字符串处理了。
至于excel的显示,只是一个显示样子而已,不管你是日期还是字符串,显示对了就成了。
如果你的excel单元格还要参与运算,才需要把样式格式设置的符合你的要求。
#5
我想的一种办法是,将取出来的数据全部转化成字符串的形式,然后显示出来,这样应该就不会出问题了把! 但是不知道这样行不行,代码也不知道怎么写,还要请教大家帮忙啊!
#6
举个日期字段的例子:
如果你的数据库中的数据存储就是date类型的,那么从recordset中获取的数据,要经过format格式赋值给单元格的value或者text属性,如下:
如果你的数据库中的数据存储就是date类型的,那么从recordset中获取的数据,要经过format格式赋值给单元格的value或者text属性,如下:
mySheet.Cells(curRow, j + 1).text = format(rs(head(j)),"YYYY-MM-DD HH:MM:SS")