我正在使用以下代码将结果集中的值插入到我的电子表格中:
Rst.MoveFirst
Do While Rst.EOF = False
For i = 0 To Rst.Fields.Count - 1
ActiveCell.Value = Rst.Fields(i).Value 'insert value into cell
ActiveCell.Offset(0, 1).Activate 'move to next cell for next value
Next i
ActiveCell.Offset(1, -i).Activate 'move to next row for next record
Rst.MoveNext
Loop
我遇到的问题是有些用户使用=
作为输入中的第一个字符,而excel不喜欢它(“应用程序定义的或对象定义的错误”)。
我已经看到了Entering '=' as the first character in a cell的解决方法,但我不想将'
应用于每个字段,理想情况下,仅当它以=
开头时。
我需要一个也适用于Null值的解决方案。我尝试了很多不同的组合(IsNull,IsDBNull),但我似乎无法找到一个有效的组合。
答案 0 :(得分:0)
我现在正坐在Linux机上,所以我无法通过内存测试这个......
如果将单元格的数字格式设置为" @"在分配值之前,那应该意味着它将值作为文字字符串
这也意味着" 0131"不会被改为131
ActiveCell.NumberFormat = "@" ' This Cell will hold text
ActiveCell.Value = Rst.Fields(i).Value 'insert value into cell
如果您只想对文本字段执行此操作,可以将结构化基于Rst.Fields(i).Type进行格式化
答案 1 :(得分:0)
正如@timwilliams建议的那样,我使用this answer来设置范围的格式(似乎比@ tompage的逐个单元格方法更有效)到文本。