Excel操作导入数据的格式问题

qq_18889079 2017-10-02 11:22:54
大家国庆好,有个问题向大家求助

我有一批数据(数据是从某款工程软件倒出来的文本,定义好了数据和存放位置。如图),数据量很大,数据有两种类型,STRING和DOUBLE,每个数据我都知道他们要放在哪一个单元格,那么问题来了:

1,我可以通过循环一个一个的把数据放在EXCEL的单元格里,这样没有问题,但是效率很低,我的数据量很大(几万个数据),一个一个写时间上不现实。

2,我可以通过数据来把数据放在数组里,然后一次性全部放在EXCEL里,这样的速度基本是秒速,类似下面的代码
Dim arr1 As Array = Array.CreateInstance(GetType(String), i, j)
....
arr1.SetValue(tempName(j), i,j)
.....
xlsWorksheet1 = xlsWorkBook1.Worksheets(Sheet(bb))
Dim orange1 As Range
orange1 = xlsWorksheet1.Range(xlsWorksheet1.Cells(1, 1), xlsWorksheet1.Cells(rowmax, rowmin))

这样的速度非常快,但是有个问题,ARRAY数组要么定义成DOUBLE,要么是STRING,而我的数据两种格式都有并且排列没有规律,所以要用数据导入我只能全部定义成STRING,输出后在EXCEL单元格里就有一个三角符号,表示这是个文本,非常的不爽(因为EXCEL有公式要进行数学计算)
。所以我的问题是:
1,有没有一次性全部处理这些三角符号的办法,一个一个处理还是太慢。
2,能不能使用ARRAYLIST或者LIST去做混合导入,导入后没有三角符号


求大神解惑

...全文
445 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
FainSheeg 2017-10-26
  • 打赏
  • 举报
回复
直接用EXCEL VBA 去小三角吧。例如要去A列的小三角,先把A的单元格格式设置为数值,然后运行一次下面的程序 (alt+F11)可以打开VBE窗口 Sub 去除小内内() Dim a As Long a = Range("A65535").End(xlUp).Row Dim b As Range For Each b In Range("A1:A" & a) b.FormulaR1C1 = b.Value Next b End Sub
xyxcc177109 2017-10-02
  • 打赏
  • 举报
回复
Sub Move3() ' Rem 去掉C列小三角的方法 Dim MaxRow As Long Dim s$ Dim k As Long MaxRow = Cells(Rows.Count, 1).End(3).Row For k = 3 To MaxRow s = Range("c" & k) Range("c" & k) = Val(s) Next End Sub

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧