注册 登录
编程论坛 VB6论坛

如何将 Textbox 里的数组保存到 Excel 里面?本帖悬赏 40 分!!如图所示:

kunsong 发布于 2014-05-07 15:25, 699 次点击
序号的数组是for循环值i,角度的数组是angle,误差的数组是d(i),我想把text里的数据保存到Excel里面,怎么弄?求详细步骤。
程序代码:
Text1.Text = "序号" & "          " & "角度" & "           " & "误差"

For i = 1 To 60
    HH = (360 / total) * b(i)
    angle(i) = Format(HH, "0.000000") '改变格式
    EE = ((360 / total) * b(i) - 6) * 60
   
    d(i) = Format(EE, "0.00") '改变格式,显示0
    i = Format(i, "00") '改变序号的格式
   
    If d(i) >= 0 Then
        Text1.Text = Text1 & vbCrLf & i & "          " & angle(i) & "        " & "+" & d(i) & vbCrLf
    Else
        Text1.Text = Text1 & vbCrLf & i & "          " & angle(i) & "        " & d(i) & vbCrLf
    End If

Next
只有本站会员才能查看附件,请 登录


[ 本帖最后由 kunsong 于 2014-5-7 17:07 编辑 ]
7 回复
#2
yuk_yu2014-05-07 17:14
回复 楼主 kunsong
搜索下关于Excel 读写的帖子,应该比较容易。
#3
lowxiong2014-05-07 17:22
open "d:\abcd.csv" for output as #1
print #1,"序号,角度,误差"
For i = 1 To 60
    HH = (360 / total) * b(i)
    angle(i) = Format(HH, "0.000000") '改变格式
    EE = ((360 / total) * b(i) - 6) * 60
   
    d(i) = Format(EE, "0.00") '改变格式,显示0
    i = Format(i, "00") '改变序号的格式   
    If d(i) >= 0 Then
        print #1,i & "," & angle(i) & ",+" & d(i)
    Else
        print #1,i & "," & angle(i) & "," & d(i)
    End If
Next
close #1
'运行结束,你可以在d盘根目录下找到abcd.csv文件,双击会被excel打开,会按照你需要的格式显示的
#4
kunsong2014-05-07 19:47
回复 3 楼 lowxiong
大神,谢谢你的指导,但是格式没有转换过来,format输出的是字符型,估计csv不能保存字符型的吧,是不是?还有和妙招?
只有本站会员才能查看附件,请 登录


[ 本帖最后由 kunsong 于 2014-5-7 19:53 编辑 ]
#5
lowxiong2014-05-07 20:04
csv其实就是文本(用记事本打开看就知道了),但excel会把全数字的字符默认为数字类型显示,你自己也可以人为输入01234,你会发现全面的0自动没有了
#6
lowxiong2014-05-07 20:25
你非要控制格式,就只有引用excel 14.0了,首先点击菜单“工程-引用”,在“Microsoft Excel 14.0 Object Library”前打勾,在所有代码前面先定义Excel相关对象,再逐行显示,实现代码如下:
Dim myexcel As New Excel.Application, mybook As New Excel.Workbook, mysheet As New Excel.Worksheet
'上面代码应为全程变量,在所有代码前面
Set mybook = myexcel.Workbooks.Add
Set mysheet = mybook.Sheets(1)
mysheet.Range("A:C").NumberFormat = "@"   '列A-C显示格式为字符型
mysheet.Cells(1, 1) = "序号"
mysheet.Cells(1, 2) = "角度"
mysheet.Cells(1, 3) = "误差"
For i = 1 To 60
    HH = (360 / total) * b(i)
    angle(i) = Format(HH, "0.000000") '改变格式
    EE = ((360 / total) * b(i) - 6) * 60   
    d(i) = Format(EE, "0.00") '改变格式,显示0
    mysheet.Cells(i+1,1) = Format(i, "00") '改变序号的格式   
    mysheet.Cells(i+1,2)=angle(i)
    If d(i) >= 0 Then
        mysheet.Cells(i+1,3)="+" & d(i)
    Else
        mysheet.Cells(i+1,3)=d(i)
    End If
Next
myexcel.Visible = True   '显示电子表格


#7
kunsong2014-05-08 09:42
回复 6 楼 lowxiong
感谢你的回答,我运行了一下,可以了!也有看网上的,但是太复杂没看懂,
mysheet.Range("A:C").NumberFormat = "@"   '列A-C显示格式为字符型
请问能不能再给我解释一下这段程序的意思,我是新手,看不懂呀

[ 本帖最后由 kunsong 于 2014-5-8 10:00 编辑 ]
#8
yuk_yu2014-05-09 11:32
回复 7 楼 kunsong
显示为文本格式
1