注册 登录
编程论坛 VB6论坛

[求助]如何将excel数据导入VB

桃源书生 发布于 2006-10-11 17:16, 3345 次点击

现有一个excel文件,内有一4×100的数据,我想在VB中建立一个四维数组a(4,100),请问应该如何实现?谢谢!

[此贴子已经被作者于2006-10-12 8:13:06编辑过]

15 回复
#2
purana2006-10-11 18:05
Private Sub Form_Click()
Me.AutoRedraw = True
Dim xlsApp As Excel.Application
Dim xlsworkbook As Excel.Workbook
Dim xlssheet As Excel.Worksheet

Set xlsApp = CreateObject("Excel.Application")
Set xlsworkbook = xlsApp.Workbooks.Open("D:\mdb\Book1.xls")
xlsApp.Visible = True

Set xlssheet = xlsworkbook.Worksheets.Item(1)

Dim Mat(1 To 10, 1 To 4) As String
Dim i As Integer, j As Integer

For i = 1 To 10
For j = 1 To 4
Mat(i, j) = xlssheet.Cells(i, j)
Next
Next

For i = 1 To 10
For j = 1 To 4
Print Mat(i, j);
Next
Print
Next

Set xlssheet = Nothing
Set xlsworkbook = Nothing
Set xlsApp = Nothing
End Sub
#3
桃源书生2006-10-12 08:13
谢谢版主!突然又想到一个问题:如果在一个excel文件里面有多个表,比如在文件a.xls中有sheet1(4×100),sheet2(2×50)两个表,我想把sheet(4×100)的数据写入vb中的数组a1(4×100)中,把sheet(2×50)的数据写入vb中的数组a2(2×50)中,请问应该添加哪些语句?

[此贴子已经被作者于2006-10-12 8:25:33编辑过]


#4
purana2006-10-12 08:51
也是差不多的,你只要设置是哪个Sheet就可以了..
Set xlssheet = xlsworkbook.Worksheets.Item(1)
#5
桃源书生2006-10-12 11:51
噢,是不是把(1)改成(2)就可以了?
#6
purana2006-10-12 12:44
自己测试一下吧..
#7
桃源书生2006-10-12 13:43
斑主啊,用了你的代码,在运行程序时,VB会自动打开所引用的那个excel文件,能不能修改一下代码,让程序运行时不打开所引用的excel文件呢?谢谢!
#8
purana2006-10-12 13:47
你没看到有一个xlsApp.Visible = True吗?..
你改为=False不就行了...
#9
桃源书生2006-10-12 14:30
噢,谢谢了!斑主要是有时间的话能不能逐句解释一下啊?
还有一个问题:在引用excel文件时,斑主用的是绝对路径,要是用相对路径(excel文件和程序在同一目录下)应该怎么写呢?我用Set xlsworkbook = xlsApp.Workbooks.Open("\mat.xls")好像不行。

[此贴子已经被作者于2006-10-12 14:33:48编辑过]

#10
purana2006-10-12 19:46
Set xlsworkbook = xlsApp.Workbooks.Open(App.Path & "\Book1.xls")
我觉得.你还是买本入门的书看看比较好..
#11
桃源书生2006-10-13 08:12
谢谢斑主!我有一本《Visual Basic程序设计简明教程》(刘炳文编著 清华大学出版社),不过里面关于数据库这一块并不详细,很多内容都没有。斑主能不能给推荐一本?
#12
purana2006-10-13 13:04
..那就买本专讲数据库的咯..
#13
桃源书生2006-10-13 17:12
偶又想起一个问题:如果excel文件是一个加密的文件,在VB中应该添加什么语句才能读取这个文件?谢谢!
#14
purana2006-10-13 17:24
Private Sub Form_Click()
Me.AutoRedraw = True
Dim xlsApp As Excel.Application
Dim xlsworkbook As Excel.Workbook
Dim xlssheet As Excel.Worksheet

Set xlsApp = CreateObject("Excel.Application")
Set xlsworkbook = xlsApp.Workbooks.Open("D:\mdb\Book1.xls", , , , "123456" )
xlsApp.Visible = True

Set xlssheet = xlsworkbook.Worksheets.Item(1)

Dim Mat(1 To 10, 1 To 4) As String
Dim i As Integer, j As Integer

For i = 1 To 10
For j = 1 To 4
Mat(i, j) = xlssheet.Cells(i, j)
Next
Next

For i = 1 To 10
For j = 1 To 4
Print Mat(i, j);
Next
Print
Next

Set xlssheet = Nothing
Set xlsworkbook = Nothing
Set xlsApp = Nothing
End Sub
#15
yuanda2006-10-26 15:28
版主太棒了,^_^
#16
oldcatcup2014-11-25 22:45
版主好耐心哦,提问者最好自己先在网上搜索一下可以自己找到的知识,自己做一部分后再提出问题吧。
1