注册 登录
编程论坛 VB6论坛

请教导出后的版面问题

fdxxhjc 发布于 2016-03-31 12:15, 2146 次点击
请教先生们,我用以下代码可将二维内存数据a(i,j)导出到"电子表"中,但导出在电子表中的形式是i*j行1列,我想要的结果是i行j列的形式,请教如何修改以下代码可满足要求,谢谢

dzb = "电子表.xls"
Open dzb For Output As #1
 For i = 1 To 行数
 For j = 1 To 列数
 Print #1, a(i, j)
 Next j
 Print ;
 Next i
5 回复
#2
xiangyue05102016-03-31 16:10
你的循环体不对,当然只有一列
程序代码:


 For i = 1 To 行数
   Dim  ss as string

 For j = 1 To 列数

 ss=ss & "," & a(i,j)

 Next j
  Print #1, ss

 Print ;

 Next i


上面的不对,因为你的不是txt,是xls。 当然你也可以用txt导入xls。
对xls不管是用什么分隔符它都是认为是一个字符串,只会放在第一列。
网上百度了以下,没有用print实现在excel中二维数据的填写的。暂时你还是得老实的调用Excel了


“工程”菜单中的“引用”项目,并选取项目中的“Microsoft Excel 11.0 object library”项。07以上好像是13

程序代码:

Dim xlapp As Excel.Application 'Excel对象
Dim xlbook As Excel.Workbook '工作簿
Dim xlsheet As Excel.Worksheet '工作表
    我们打算做的是:打开/新建一个excel,在其中对某工作表的一些单元格修改其值,然后另存为test.xls文件。
Private Sub Excel_Out_Click()
Dim i, j As Integer
Set xlapp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlbook = xlapp.Workbooks.Add '新建EXCEL工件簿文件
xlapp.Visible = True '设置EXCEL对象可见(或不可见)
Set xlsheet = xlbook.Worksheets(1) '设置活动工作表,当前工作簿的第一页,这里也可以换成“表名”
'
下面就是简单的在一些单元格内写入数字
For i = 0 To 10
   For j = 1 To 10
     xlsheet.Cells(i, j) = a(i,j)   '当前工作簿第一页的第I行第J列
   Next j
Next i
xlsheet.SaveAs App.Path & "\test.xls"           '按指定文件名存盘
xlapp.Quit '结束EXCEL对象'xlapp.Workbooks.Close
Set xlapp = Nothing '释放xlApp对象


[此贴子已经被作者于2016-3-31 16:30编辑过]

#3
xiangyue05102016-03-31 16:17
不好意思,没看清楚你的是xls,还以为是txt。
我还得看看怎么弄、
#4
fdxxhjc2016-04-01 06:49
回复 2楼 xiangyue0510
先生您好,这块代码运行下来可以将数据写入电子表并且是i行j列的形式,但最后保存时无法保存到指定的电子文件中,我分别试过相对路径和绝对路径,并且提示语指向的代码是这一行:xlsheet.SaveAs App.Path & "\b.xls"  
在文件夹中先建立b.xls 也不成功,请先生指点,谢谢
#5
wmf20142016-04-01 10:14
用csv文档吧
Dim a As String
dzb = "f:\电子表.csv"
Open dzb For Output As #1
 For i = 1 To 5
 a = ""
 For j = 1 To 6
 a = a & i & j & ","
 Next j
 Print #1, a
 Next i
 Close #1


[此贴子已经被作者于2016-4-1 10:21编辑过]

#6
不说也罢2016-04-03 11:10
注意将下面代码的红色部分与你原来的代码进行比较:
dzb = "电子表.xls"
Open dzb For Output As #1
 For i = 1 To 行数
     For j = 1 To 列数
         Print #1, a(i, j); ,'这是有个分号和逗号
         DoEvents
     Next j
     Print #1,'这里看仔细哦
 Next i
Close #1'习惯性关闭打开的文件
1